openapi: 3.0.0
info:
  title: ECG
  description: Documentation
  version: '1.0'
  contact: {}
servers:
  - url: https://orgs.ecg-api.com
tags: []
paths:
  /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
  /api/applications/audit-trails:
    get:
      operationId: ApplicationsController_getAuditTrailsForAll
      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: sort_by
          required: false
          in: query
          description: 'Default value : modifiedAt'
          schema:
            example: modifiedAt
            type: string
        - name: searchTerm
          required: false
          in: query
          description: 'Search By: action'
          schema:
            enum:
              - UPDATE
              - DELETE
              - INSERT
            type: string
        - name: dateRangeType
          required: false
          in: query
          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
          schema:
            format: date-time
            example: '2026-03-04T17:27:05.470Z'
            type: string
        - name: to
          required: false
          in: query
          schema:
            format: date-time
            example: '2026-03-04T17:27:05.470Z'
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/AuditTrailDisplayModel'
                      currentPageNumber:
                        type: number
                        example: 0
                      recordsPerPage:
                        type: number
                        example: 0
                      totalRecords:
                        type: number
                        example: 0
                      totalPages:
                        type: number
                        example: 0
      security:
        - bearer: []
      summary: Lists available Application Audit Trails for all Applications.
      tags:
        - Applications
  /api/applications:
    post:
      operationId: ApplicationsController_create
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddApplicationDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApplicationDisplayModel'
      security:
        - bearer: []
      summary: Adds the Application.
      tags:
        - Applications
    get:
      operationId: ApplicationsController_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 By: name or description'
          schema:
            type: string
        - name: include
          required: false
          in: query
          description: >-
            For query include=modules, it returns applications with modules ,if
            exists
          schema:
            enum:
              - modules
            type: string
        - name: sort_by
          required: false
          in: query
          description: 'Default value : id'
          schema:
            example: id
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/ApplicationDisplayModel'
                      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 Applications.
      tags:
        - Applications
  /api/applications/{applicationId}:
    get:
      operationId: ApplicationsController_getById
      parameters:
        - name: applicationId
          required: true
          in: path
          schema:
            type: string
        - name: include
          required: false
          in: query
          description: >-
            For query include=modules it returns application with modules,if
            exists
          schema:
            enum:
              - modules
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApplicationDisplayModel'
      security:
        - bearer: []
      summary: Gets the Application information.
      tags:
        - Applications
    delete:
      operationId: ApplicationsController_deleteById
      parameters:
        - name: applicationId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Deletes the Application information.
      tags:
        - Applications
    patch:
      operationId: ApplicationsController_update
      parameters:
        - name: applicationId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        description: >+

          In the preceding JSON:

          1. The 'op' property indicates the type of operation. 


          2. The 'path' property indicates the element to update. 


          3. The 'value' property provides the new value. - The *TYPE* of
          'value' depends on the *TYPE* of the element in 'path'




          *For Example: If TYPE of element in path: '/isProvider' is 'boolean' ,
          then The TYPE of Value should be 'boolean'*   




          op can be 'add' , 'replace' or 'remove'    


          1. add : Add a property or array element. For existing property: set
          value. 


          2. remove : Remove a property or array element. 


          3. replace : Same as remove followed by add at same location. 


        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/JsonPatchDocumentDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApplicationDisplayModel'
      security:
        - bearer: []
      summary: >-
        Patches the Application information by updating the items they were
        provided.
      tags:
        - Applications
  /api/applications/{applicationId}/modules:
    get:
      operationId: ApplicationsController_getApplicationModulesById
      parameters:
        - name: applicationId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApplicationDisplayModel'
      security:
        - bearer: []
      summary: Gets Modules associated with Application.
      tags:
        - Applications
    post:
      operationId: ApplicationsController_addApplicationModules
      parameters:
        - name: applicationId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddModuleIdsDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApplicationDisplayModel'
      security:
        - bearer: []
      summary: Associates ModuleIds with Application.
      tags:
        - Applications
  /api/applications/{applicationId}/archive:
    post:
      operationId: ApplicationsController_archive
      parameters:
        - name: applicationId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Archives the Application information.
      tags:
        - Applications
  /api/applications/{applicationId}/restore:
    post:
      operationId: ApplicationsController_restore
      parameters:
        - name: applicationId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Restores the Application information.
      tags:
        - Applications
  /api/applications/{applicationId}/activate:
    post:
      operationId: ApplicationsController_activate
      parameters:
        - name: applicationId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Activates the Application information.
      tags:
        - Applications
  /api/applications/{applicationId}/deactivate:
    post:
      operationId: ApplicationsController_deactivate
      parameters:
        - name: applicationId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Deactivates the Application information.
      tags:
        - Applications
  /api/applications/{applicationId}/audit-trails:
    get:
      operationId: ApplicationsController_getAuditTrailsForAppId
      parameters:
        - name: applicationId
          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: sort_by
          required: false
          in: query
          description: 'Default value : modifiedAt'
          schema:
            example: modifiedAt
            type: string
        - name: searchTerm
          required: false
          in: query
          description: 'Search By: action'
          schema:
            enum:
              - UPDATE
              - DELETE
              - INSERT
            type: string
        - name: dateRangeType
          required: false
          in: query
          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
          schema:
            format: date-time
            example: '2026-03-04T17:27:05.470Z'
            type: string
        - name: to
          required: false
          in: query
          schema:
            format: date-time
            example: '2026-03-04T17:27:05.470Z'
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/AuditTrailDisplayModel'
                      currentPageNumber:
                        type: number
                        example: 0
                      recordsPerPage:
                        type: number
                        example: 0
                      totalRecords:
                        type: number
                        example: 0
                      totalPages:
                        type: number
                        example: 0
      security:
        - bearer: []
      summary: Lists available Application Audit Trails for given ApplicationId.
      tags:
        - Applications
  /api/modules/audit-trails:
    get:
      operationId: ModulesController_getAuditTrailsForAll
      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: sort_by
          required: false
          in: query
          description: 'Default value : modifiedAt'
          schema:
            example: modifiedAt
            type: string
        - name: searchTerm
          required: false
          in: query
          description: 'Search By: action'
          schema:
            enum:
              - UPDATE
              - DELETE
              - INSERT
            type: string
        - name: dateRangeType
          required: false
          in: query
          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
          schema:
            format: date-time
            example: '2026-03-04T17:27:05.470Z'
            type: string
        - name: to
          required: false
          in: query
          schema:
            format: date-time
            example: '2026-03-04T17:27:05.470Z'
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/AuditTrailDisplayModel'
                      currentPageNumber:
                        type: number
                        example: 0
                      recordsPerPage:
                        type: number
                        example: 0
                      totalRecords:
                        type: number
                        example: 0
                      totalPages:
                        type: number
                        example: 0
      security:
        - bearer: []
      summary: Lists available Module Audit Trails for all Modules
      tags:
        - Modules
  /api/modules/{moduleId}/audit-trails:
    get:
      operationId: ModulesController_getAuditTrailsForModuleId
      parameters:
        - name: moduleId
          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: sort_by
          required: false
          in: query
          description: 'Default value : modifiedAt'
          schema:
            example: modifiedAt
            type: string
        - name: searchTerm
          required: false
          in: query
          description: 'Search By: action'
          schema:
            enum:
              - UPDATE
              - DELETE
              - INSERT
            type: string
        - name: dateRangeType
          required: false
          in: query
          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
          schema:
            format: date-time
            example: '2026-03-04T17:27:05.470Z'
            type: string
        - name: to
          required: false
          in: query
          schema:
            format: date-time
            example: '2026-03-04T17:27:05.470Z'
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/AuditTrailDisplayModel'
                      currentPageNumber:
                        type: number
                        example: 0
                      recordsPerPage:
                        type: number
                        example: 0
                      totalRecords:
                        type: number
                        example: 0
                      totalPages:
                        type: number
                        example: 0
      security:
        - bearer: []
      summary: Lists available Module Audit Trails for given moduleId
      tags:
        - Modules
  /api/modules:
    post:
      operationId: ModulesController_create
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddModuleDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ModuleDisplayModel'
      security:
        - bearer: []
      summary: Adds the Module.
      tags:
        - Modules
    get:
      operationId: ModulesController_getAllModules
      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: name or description'
          schema:
            type: string
        - name: include
          required: false
          in: query
          description: >-
            For query include=permissions it returns module with permissions ,if
            exists
          schema:
            type: array
            items:
              type: string
              enum:
                - permissions
                - applications
        - name: sort_by
          required: false
          in: query
          description: 'Default value : id'
          schema:
            example: id
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/ModuleDisplayModel'
                      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 available Modules.
      tags:
        - Modules
  /api/modules/{moduleId}/applications:
    post:
      operationId: ModulesController_addModuleApplication
      parameters:
        - name: moduleId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddApplicationIdsDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ModuleDisplayModel'
      security:
        - bearer: []
      summary: Associates Applications with the Module.
      tags:
        - Modules
  /api/modules/{moduleId}:
    get:
      operationId: ModulesController_getById
      parameters:
        - name: moduleId
          required: true
          in: path
          schema:
            type: string
        - name: include
          required: false
          in: query
          description: >-
            For query include=permissions it returns module with permissions ,if
            exists
          schema:
            type: array
            items:
              type: string
              enum:
                - permissions
                - applications
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ModuleDisplayModel'
      security:
        - bearer: []
      summary: Gets the Module information.
      tags:
        - Modules
    delete:
      operationId: ModulesController_deleteById
      parameters:
        - name: moduleId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Deletes the Module information.
      tags:
        - Modules
    patch:
      operationId: ModulesController_update
      parameters:
        - name: moduleId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        description: >+

          In the preceding JSON:

          1. The 'op' property indicates the type of operation. 


          2. The 'path' property indicates the element to update. 


          3. The 'value' property provides the new value. - The *TYPE* of
          'value' depends on the *TYPE* of the element in 'path'




          *For Example: If TYPE of element in path: '/isProvider' is 'boolean' ,
          then The TYPE of Value should be 'boolean'*   




          op can be 'add' , 'replace' or 'remove'    


          1. add : Add a property or array element. For existing property: set
          value. 


          2. remove : Remove a property or array element. 


          3. replace : Same as remove followed by add at same location. 


        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/JsonPatchDocumentDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ModuleDisplayModel'
      security:
        - bearer: []
      summary: Patches the Module information by updating the items they were provided.
      tags:
        - Modules
  /api/modules/{moduleId}/permissions:
    get:
      operationId: ModulesController_getPermissionsByModuleId
      parameters:
        - name: moduleId
          required: true
          in: path
          schema:
            type: string
        - name: searchTerm
          required: false
          in: query
          description: 'Search By: 9209e9fa-3065-41bf-96ff-db3a9b84ca7e'
          schema: {}
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ModuleDisplayModel'
      security:
        - bearer: []
      summary: Gets Permissions associated with Module.
      tags:
        - Modules
    post:
      operationId: ModulesController_putPermissionsByModule
      parameters:
        - name: moduleId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddPermissionIdsDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ModuleDisplayModel'
      security:
        - bearer: []
      summary: Adds module with permissions
      tags:
        - Modules
  /api/modules/{moduleId}/application/{applicationId}:
    delete:
      operationId: ModulesController_deleteApplicationFromModuleById
      parameters:
        - name: moduleId
          required: true
          in: path
          schema:
            type: string
        - name: applicationId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Deletes the application information from module
      tags:
        - Modules
  /api/modules/{moduleId}/archive:
    post:
      operationId: ModulesController_archive
      parameters:
        - name: moduleId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Archives the Module information.
      tags:
        - Modules
  /api/modules/{moduleId}/restore:
    post:
      operationId: ModulesController_restore
      parameters:
        - name: moduleId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Restores the Module information.
      tags:
        - Modules
  /api/modules/{moduleId}/activate:
    post:
      operationId: ModulesController_activate
      parameters:
        - name: moduleId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Activate the Module information.
      tags:
        - Modules
  /api/modules/{moduleId}/deactivate:
    post:
      operationId: ModulesController_deactivate
      parameters:
        - name: moduleId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Deactivate the Module information.
      tags:
        - Modules
  /api/permissions/audit-trails:
    get:
      operationId: PermissionsController_getAuditTrailsForAll
      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: sort_by
          required: false
          in: query
          description: 'Default value : modifiedAt'
          schema:
            example: modifiedAt
            type: string
        - name: searchTerm
          required: false
          in: query
          description: 'Search By: action'
          schema:
            enum:
              - UPDATE
              - DELETE
              - INSERT
            type: string
        - name: dateRangeType
          required: false
          in: query
          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
          schema:
            format: date-time
            example: '2026-03-04T17:27:05.470Z'
            type: string
        - name: to
          required: false
          in: query
          schema:
            format: date-time
            example: '2026-03-04T17:27:05.470Z'
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/AuditTrailDisplayModel'
                      currentPageNumber:
                        type: number
                        example: 0
                      recordsPerPage:
                        type: number
                        example: 0
                      totalRecords:
                        type: number
                        example: 0
                      totalPages:
                        type: number
                        example: 0
      security:
        - bearer: []
      summary: Lists available Permission Audit Trails for all the Permissions.
      tags:
        - Permissions
  /api/permissions:
    post:
      operationId: PermissionsController_addPermission
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddPermissionDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PermissionDisplayModel'
      security:
        - bearer: []
      summary: Adds the Permission.
      tags:
        - Permissions
    get:
      operationId: PermissionsController_getAllPermissions
      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: name, code or description'
          schema:
            type: string
        - name: include
          required: false
          in: query
          description: >-
            For query include=module it returns permissions with module,if
            exists
          schema:
            type: array
            items:
              type: string
              enum:
                - policies
                - module
        - name: sort_by
          required: false
          in: query
          description: 'Default value : id'
          schema:
            example: id
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/PermissionDisplayModel'
                      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 available Permissions.
      tags:
        - Permissions
  /api/permissions/{permissionId}:
    get:
      operationId: PermissionsController_getById
      parameters:
        - name: permissionId
          required: true
          in: path
          schema:
            type: string
        - name: include
          required: false
          in: query
          description: >-
            For query include=module it returns permissions with module,if
            exists
          schema:
            type: array
            items:
              type: string
              enum:
                - policies
                - module
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PermissionDisplayModel'
      security:
        - bearer: []
      summary: Gets the Permission information.
      tags:
        - Permissions
    delete:
      operationId: PermissionsController_deleteById
      parameters:
        - name: permissionId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Deletes the Permission information.
      tags:
        - Permissions
    patch:
      operationId: PermissionsController_update
      parameters:
        - name: permissionId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        description: >+

          In the preceding JSON:

          1. The 'op' property indicates the type of operation. 


          2. The 'path' property indicates the element to update. 


          3. The 'value' property provides the new value. - The *TYPE* of
          'value' depends on the *TYPE* of the element in 'path'




          *For Example: If TYPE of element in path: '/isProvider' is 'boolean' ,
          then The TYPE of Value should be 'boolean'*   




          op can be 'add' , 'replace' or 'remove'    


          1. add : Add a property or array element. For existing property: set
          value. 


          2. remove : Remove a property or array element. 


          3. replace : Same as remove followed by add at same location. 


        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/JsonPatchDocumentDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PermissionDisplayModel'
      security:
        - bearer: []
      summary: >-
        Patches the Permission information by updating the items they were
        provided.
      tags:
        - Permissions
  /api/permissions/{permissionId}/modules/{moduleId}:
    patch:
      operationId: PermissionsController_addModuleByPermission
      parameters:
        - name: permissionId
          required: true
          in: path
          schema:
            type: string
        - name: moduleId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PermissionDisplayModel'
      security:
        - bearer: []
      summary: Adds Module with Permission.
      tags:
        - Permissions
  /api/permissions/{permissionId}/archive:
    post:
      operationId: PermissionsController_archive
      parameters:
        - name: permissionId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Archives the Permission information.
      tags:
        - Permissions
  /api/permissions/{permissionId}/restore:
    post:
      operationId: PermissionsController_restore
      parameters:
        - name: permissionId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Restores the Permission information.
      tags:
        - Permissions
  /api/permissions/{permissionId}/activate:
    post:
      operationId: PermissionsController_activate
      parameters:
        - name: permissionId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Activate the Permission information.
      tags:
        - Permissions
  /api/permissions/{permissionId}/deactivate:
    post:
      operationId: PermissionsController_deactivate
      parameters:
        - name: permissionId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Deactivate the Permission information.
      tags:
        - Permissions
  /api/permissions/{permissionId}/audit-trails:
    get:
      operationId: PermissionsController_getAllAuditTrailsById
      parameters:
        - name: permissionId
          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: sort_by
          required: false
          in: query
          description: 'Default value : modifiedAt'
          schema:
            example: modifiedAt
            type: string
        - name: searchTerm
          required: false
          in: query
          description: 'Search By: action'
          schema:
            enum:
              - UPDATE
              - DELETE
              - INSERT
            type: string
        - name: dateRangeType
          required: false
          in: query
          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
          schema:
            format: date-time
            example: '2026-03-04T17:27:05.470Z'
            type: string
        - name: to
          required: false
          in: query
          schema:
            format: date-time
            example: '2026-03-04T17:27:05.470Z'
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/AuditTrailDisplayModel'
                      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 Permission Audit Trails for given Permission Id.
      tags:
        - Permissions
  /api/policies/audit-trails:
    get:
      operationId: PoliciesController_getAuditTrailsForAll
      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: sort_by
          required: false
          in: query
          description: 'Default value : modifiedAt'
          schema:
            example: modifiedAt
            type: string
        - name: searchTerm
          required: false
          in: query
          description: 'Search By: action'
          schema:
            enum:
              - UPDATE
              - DELETE
              - INSERT
            type: string
        - name: dateRangeType
          required: false
          in: query
          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
          schema:
            format: date-time
            example: '2026-03-04T17:27:05.470Z'
            type: string
        - name: to
          required: false
          in: query
          schema:
            format: date-time
            example: '2026-03-04T17:27:05.470Z'
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/AuditTrailDisplayModel'
                      currentPageNumber:
                        type: number
                        example: 0
                      recordsPerPage:
                        type: number
                        example: 0
                      totalRecords:
                        type: number
                        example: 0
                      totalPages:
                        type: number
                        example: 0
      security:
        - bearer: []
      summary: Lists available Policy Audit Trails for all the Policies.
      tags:
        - Policies
  /api/policies:
    post:
      operationId: PoliciesController_create
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddPolicyDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PolicyDisplayModel'
      security:
        - bearer: []
      summary: Adds the Policy.
      tags:
        - Policies
    get:
      operationId: PoliciesController_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 By: name, code or description'
          schema:
            type: string
        - name: include
          required: false
          in: query
          description: >-
            For query include=permissions it returns permissions with policy,if
            exists
          schema:
            type: array
            items:
              type: string
              enum:
                - permissions
                - organization
        - name: sort_by
          required: false
          in: query
          description: 'Default value : id'
          schema:
            example: id
            type: string
        - name: includeInternalUseOnly
          required: false
          in: query
          description: 'Default Value: false'
          schema:
            example: 'false'
            enum:
              - 'true'
              - 'false'
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/PolicyDisplayModel'
                      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 Policies.
      tags:
        - Policies
  /api/policies/{policyId}:
    get:
      operationId: PoliciesController_getById
      parameters:
        - name: policyId
          required: true
          in: path
          schema:
            type: string
        - name: include
          required: false
          in: query
          description: >-
            For query include=permissions it returns policy with permissions,if
            exists
          schema:
            type: array
            items:
              type: string
              enum:
                - permissions
                - organization
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PolicyDisplayModel'
      security:
        - bearer: []
      summary: Gets the Policy information.
      tags:
        - Policies
    delete:
      operationId: PoliciesController_deleteById
      parameters:
        - name: policyId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Deletes the Policy information.
      tags:
        - Policies
    patch:
      operationId: PoliciesController_update
      parameters:
        - name: policyId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        description: >+

          In the preceding JSON:

          1. The 'op' property indicates the type of operation. 


          2. The 'path' property indicates the element to update. 


          3. The 'value' property provides the new value. - The *TYPE* of
          'value' depends on the *TYPE* of the element in 'path'




          *For Example: If TYPE of element in path: '/isProvider' is 'boolean' ,
          then The TYPE of Value should be 'boolean'*   




          op can be 'add' , 'replace' or 'remove'    


          1. add : Add a property or array element. For existing property: set
          value. 


          2. remove : Remove a property or array element. 


          3. replace : Same as remove followed by add at same location. 


        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/JsonPatchDocumentDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PolicyDisplayModel'
      security:
        - bearer: []
      summary: Patches the Policy information by updating the items they were provided.
      tags:
        - Policies
  /api/policies/{policyId}/permissions/{permissionId}:
    delete:
      operationId: PoliciesController_deleteByPermissionId
      parameters:
        - name: policyId
          required: true
          in: path
          schema:
            type: string
        - name: permissionId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Deletes the permissions information from policy.
      tags:
        - Policies
  /api/policies/{policyId}/permissions:
    post:
      operationId: PoliciesController_putPermissions
      parameters:
        - name: policyId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddPermissionIdsDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PolicyDisplayModel'
      security:
        - bearer: []
      summary: Associates Permission and Policy .
      tags:
        - Policies
  /api/policies/{policyId}/archive:
    post:
      operationId: PoliciesController_archive
      parameters:
        - name: policyId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Archives the Policy information.
      tags:
        - Policies
  /api/policies/{policyId}/restore:
    post:
      operationId: PoliciesController_restore
      parameters:
        - name: policyId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Restores the Policy information.
      tags:
        - Policies
  /api/policies/{policyId}/activate:
    post:
      operationId: PoliciesController_activate
      parameters:
        - name: policyId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Activate the Policy information.
      tags:
        - Policies
  /api/policies/{policyId}/deactivate:
    post:
      operationId: PoliciesController_deactivate
      parameters:
        - name: policyId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Deactivate the Policy information.
      tags:
        - Policies
  /api/policies/{policyId}/audit-trails:
    get:
      operationId: PoliciesController_getAllAuditTrailsById
      parameters:
        - name: policyId
          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: sort_by
          required: false
          in: query
          description: 'Default value : modifiedAt'
          schema:
            example: modifiedAt
            type: string
        - name: searchTerm
          required: false
          in: query
          description: 'Search By: action'
          schema:
            enum:
              - UPDATE
              - DELETE
              - INSERT
            type: string
        - name: dateRangeType
          required: false
          in: query
          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
          schema:
            format: date-time
            example: '2026-03-04T17:27:05.470Z'
            type: string
        - name: to
          required: false
          in: query
          schema:
            format: date-time
            example: '2026-03-04T17:27:05.470Z'
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/AuditTrailDisplayModel'
                      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 Policy Audit Trails for given Policy Id.
      tags:
        - Policies
  /api/permission-caches/recache:
    post:
      operationId: AccountPermissionCachesController_recache
      parameters: []
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Recaches all accounts.
      tags:
        - PermissionCaches
  /api/permission-caches/{cognitoUserId}/set-recache-flag:
    post:
      operationId: AccountPermissionCachesController_setPermissionCacheFlag
      parameters:
        - name: cognitoUserId
          required: true
          in: path
          schema:
            type: string
        - name: recacheFlag
          required: true
          in: query
          schema:
            enum:
              - 'true'
              - 'false'
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PermissionCacheDisplayModel'
      security:
        - bearer: []
      summary: Set Recache Flag for given User.
      tags:
        - PermissionCaches
  /api/permission-caches/{cognitoUserId}:
    post:
      operationId: AccountPermissionCachesController_getPermissionCache
      parameters:
        - name: cognitoUserId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PermissionCacheDisplayModel'
      security:
        - bearer: []
      summary: Get's Permission Cache information for user.
      tags:
        - PermissionCaches
  /api/permission-caches/{userId}/recache:
    post:
      externalDocs:
        description: CONFLUENCE STORY - Recache Account Permission for a User
        url: >-
          https://ecg.atlassian.net/wiki/spaces/ACM/pages/1929740295/STORY+-+Recache+Account+Permission+for+a+User
      operationId: AccountPermissionCachesController_accountPermissionRecache
      parameters:
        - name: type
          required: true
          in: query
          description: >-
            Default value: local , If type=idp, then we will perform the
            operation based on the 'cognitoUserId' where as If type=local, then
            we will perform the operation based on the 'personID' 
          schema:
            enum:
              - idp
              - local
            type: string
        - name: userId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: >-
        This API serves the purpose of Re-caching the Account Permission
        information into the ACM for a particular user based on the 'type' of
        the UserId selected.
      tags:
        - PermissionCaches
  /api/organizations/audit-trails:
    get:
      operationId: OrganizationsController_getAuditTrailsForAll
      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: sort_by
          required: false
          in: query
          description: 'Default value : modifiedAt'
          schema:
            example: modifiedAt
            type: string
        - name: searchTerm
          required: false
          in: query
          description: 'Search By: action'
          schema:
            enum:
              - UPDATE
              - DELETE
              - INSERT
            type: string
        - name: dateRangeType
          required: false
          in: query
          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
          schema:
            format: date-time
            example: '2026-03-04T17:27:05.470Z'
            type: string
        - name: to
          required: false
          in: query
          schema:
            format: date-time
            example: '2026-03-04T17:27:05.470Z'
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/AuditTrailDisplayModel'
                      currentPageNumber:
                        type: number
                        example: 0
                      recordsPerPage:
                        type: number
                        example: 0
                      totalRecords:
                        type: number
                        example: 0
                      totalPages:
                        type: number
                        example: 0
      security:
        - bearer: []
      summary: Lists available Organization Audit Trails for all the Organizations.
      tags:
        - Organizations
  /api/organizations/{organizationId}/metadata:
    patch:
      operationId: OrganizationsController_updateMetadata
      parameters:
        - name: organizationId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        description: >+

          In the preceding JSON:

          1. The 'op' property indicates the type of operation. 


          2. The 'path' property indicates the element to update. 


          3. The 'value' property provides the new value. - The *TYPE* of
          'value' depends on the *TYPE* of the element in 'path'




          *For Example: If TYPE of element in path: '/isProvider' is 'boolean' ,
          then The TYPE of Value should be 'boolean'*   




          op can be 'add' , 'replace' or 'remove'    


          1. add : Add a property or array element. For existing property: set
          value. 


          2. remove : Remove a property or array element. 


          3. replace : Same as remove followed by add at same location. 


        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/JsonPatchDocumentDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrganizationDisplayModel'
      security:
        - bearer: []
      summary: >-
        Patches the Organization Metadata information by updating the items they
        were provided.
      tags:
        - Organizations
    post:
      operationId: OrganizationsController_addMetadata
      parameters:
        - name: organizationId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/AddMetadataDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrganizationDisplayModel'
      security:
        - bearer: []
      summary: Adds the Organization metadata
      tags:
        - Organizations
    delete:
      operationId: OrganizationsController_delete
      parameters:
        - name: field
          required: true
          in: query
          schema:
            example: string
            type: string
        - name: organizationId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Delete the organization's metadata
      tags:
        - Organizations
  /api/organizations/{organizationId}/addresses/{addressId}:
    patch:
      operationId: OrganizationsController_updateAddressInfo
      parameters:
        - name: organizationId
          required: true
          in: path
          schema:
            type: string
        - name: addressId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        description: >+

          In the preceding JSON:

          1. The 'op' property indicates the type of operation. 


          2. The 'path' property indicates the element to update. 


          3. The 'value' property provides the new value. - The *TYPE* of
          'value' depends on the *TYPE* of the element in 'path'




          *For Example: If TYPE of element in path: '/isProvider' is 'boolean' ,
          then The TYPE of Value should be 'boolean'*   




          op can be 'add' , 'replace' or 'remove'    


          1. add : Add a property or array element. For existing property: set
          value. 


          2. remove : Remove a property or array element. 


          3. replace : Same as remove followed by add at same location. 


        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/JsonPatchDocumentDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrganizationDisplayModel'
      security:
        - bearer: []
      summary: >-
        Patches the Address information by updating the items they were
        provided.
      tags:
        - Organizations
    delete:
      operationId: OrganizationsController_deleteAddress
      parameters:
        - name: organizationId
          required: true
          in: path
          schema:
            type: string
        - name: addressId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: >-
        Deletes an organization address information from the system based on the
        AddressId
      tags:
        - Organizations
  /api/organizations/metadata:
    get:
      operationId: OrganizationsController_getByMetadata
      parameters:
        - name: field
          required: true
          in: query
          schema:
            example: string
            type: string
        - name: value
          required: true
          in: query
          schema:
            example: string
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrganizationDisplayModel'
      security:
        - bearer: []
      summary: Gets the Organization information by metadata.
      tags:
        - Organizations
  /api/integrations/apptivo/organizations-create:
    post:
      operationId: OrganizationsController_processCreatedPartnerWebhook
      parameters: []
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      summary: Organization Created Webhook API
      tags:
        - Organizations
  /api/organizations/{organizationId}/re-sync:
    post:
      operationId: OrganizationsController_reSync
      parameters:
        - name: organizationId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Re-sync Organization's Information using SNS.
      tags:
        - Organizations
  /api/organizations/re-sync-all:
    post:
      operationId: OrganizationsController_reSyncAll
      parameters: []
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Re-sync All the Organizations Information using SNS.
      tags:
        - Organizations
  /api/integrations/apptivo/organizations-delete:
    post:
      operationId: OrganizationsController_processDeletedPartnerWebhook
      parameters: []
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      summary: Organization Deleted Webhook API
      tags:
        - Organizations
  /api/integrations/apptivo/organizations-update:
    post:
      operationId: OrganizationsController_processUpdatedPartnerWebhook
      parameters: []
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      summary: Organization Updated Webhook API
      tags:
        - Organizations
  /api/organizations:
    post:
      operationId: OrganizationsController_create
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddOrganizationDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrganizationDisplayModel'
      security:
        - bearer: []
      summary: Adds the Organization.
      tags:
        - Organizations
    get:
      operationId: AuthFactoryController_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 By : displayName or businessName'
          schema:
            type: string
        - name: orgType
          required: false
          in: query
          description: Default Value - 1
          schema:
            default: '1'
            type: array
            items:
              type: string
              enum:
                - '1'
                - '2'
        - name: status
          required: false
          in: query
          description: 'Default Value: [Active,Inactive,Suspended,Restored]'
          schema:
            type: array
            items:
              type: string
              enum:
                - Active
                - Inactive
                - Suspended
                - Archived
                - Restored
        - name: sort_by
          required: false
          in: query
          description: 'Default value : displayName'
          schema:
            example: displayName
            type: string
        - name: include
          required: false
          in: query
          description: >-
            For query include=parent it returns parentOrganization with
            Organization,if exists
          schema:
            type: array
            items:
              type: string
              enum:
                - parent
                - children
                - partnerCriteria
        - name: parentId
          required: false
          in: query
          schema:
            type: string
        - name: organizationIds
          required: false
          in: query
          description: >-
            By adding the 'organizationIds' parameter to the API call, you can
            retrieve a list of Organizations information based on the specified
            IDs.
          schema:
            type: array
            items:
              type: string
        - name: vendorProfileId
          required: false
          in: query
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/OrganizationDisplayModel'
                      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 Organizations.
      tags:
        - Organizations
  /api/organizations/{organizationId}/crm-sync:
    post:
      operationId: OrganizationsController_crmSync
      parameters:
        - name: organizationId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Syncs the Organization information into the CRM
      tags:
        - Organizations
  /api/organizations/{organizationId}:
    get:
      operationId: OrganizationsController_getById
      parameters:
        - name: organizationId
          required: true
          in: path
          schema:
            type: string
        - name: include
          required: false
          in: query
          description: >-
            For query include=parent it returns parentOrganization with
            Organization, if exists
          schema:
            type: array
            items:
              type: string
              enum:
                - parent
                - children
                - vendorProfile
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrganizationDisplayModel'
      security:
        - bearer: []
      summary: Gets the Organization information.
      tags:
        - Organizations
    delete:
      operationId: OrganizationsController_deleteById
      parameters:
        - name: organizationId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Deletes the Organization information.
      tags:
        - Organizations
    patch:
      operationId: OrganizationsController_update
      parameters:
        - name: organizationId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        description: >+

          In the preceding JSON:

          1. The 'op' property indicates the type of operation. 


          2. The 'path' property indicates the element to update. 


          3. The 'value' property provides the new value. - The *TYPE* of
          'value' depends on the *TYPE* of the element in 'path'




          *For Example: If TYPE of element in path: '/isProvider' is 'boolean' ,
          then The TYPE of Value should be 'boolean'*   




          op can be 'add' , 'replace' or 'remove'    


          1. add : Add a property or array element. For existing property: set
          value. 


          2. remove : Remove a property or array element. 


          3. replace : Same as remove followed by add at same location. 


        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/JsonPatchDocumentDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrganizationDisplayModel'
      security:
        - bearer: []
      summary: >-
        Patches the Organization information by updating the items they were
        provided.
      tags:
        - Organizations
  /api/organizations/{organizationId}/archive:
    post:
      operationId: OrganizationsController_archive
      parameters:
        - name: organizationId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Archives the Organization information.
      tags:
        - Organizations
  /api/organizations/{organizationId}/restore:
    post:
      operationId: OrganizationsController_restore
      parameters:
        - name: organizationId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Restores the Organization information.
      tags:
        - Organizations
  /api/organizations/{organizationId}/activate:
    post:
      operationId: OrganizationsController_activate
      parameters:
        - name: organizationId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Activate the Organization information.
      tags:
        - Organizations
  /api/organizations/{organizationId}/deactivate:
    post:
      operationId: OrganizationsController_deactivate
      parameters:
        - name: organizationId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Deactivate the Organization information.
      tags:
        - Organizations
  /api/organizations/{organizationId}/suspend:
    post:
      operationId: OrganizationsController_suspended
      parameters:
        - name: organizationId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Suspend the Organization information.
      tags:
        - Organizations
  /api/organizations/{organizationId}/hierarchy:
    get:
      operationId: OrganizationsController_getOrgHierarchy
      parameters:
        - name: organizationId
          required: true
          in: path
          schema:
            type: string
        - name: mode
          required: true
          in: query
          schema:
            enum:
              - flat
              - nested
            type: string
        - name: searchTerm
          required: false
          in: query
          description: >-
            Searched based on the Organization's Display Name or the Business
            Name
          schema:
            type: string
        - name: take
          required: false
          in: query
          schema:
            default: 10
            type: number
        - name: skip
          required: false
          in: query
          schema:
            default: 0
            type: number
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/OrganizationHierarchyDisplayModel'
                  - allOf:
                      - properties:
                          items:
                            type: array
                            items:
                              $ref: >-
                                #/components/schemas/ChildOrgHierarchyDisplayModel
                          currentPageNumber:
                            type: number
                            example: 0
                          recordsPerPage:
                            type: number
                            example: 0
                          totalRecords:
                            type: number
                            example: 0
                          totalPages:
                            type: number
                            example: 0
      security:
        - bearer: []
      summary: Gets Organization Hierarchy
      tags:
        - Organizations
  /api/organizations/{organizationId}/ancestries:
    get:
      operationId: OrganizationsController_listAncestries
      parameters:
        - name: organizationId
          required: true
          in: path
          schema:
            type: string
        - name: order_by
          required: false
          in: query
          schema:
            example: ASC
            enum:
              - ASC
              - DESC
            type: string
        - name: searchTerm
          required: false
          in: query
          description: 'Search By : displayName or businessName'
          schema:
            type: string
        - name: orgType
          required: false
          in: query
          description: Default Value - 1
          schema:
            default: '1'
            type: array
            items:
              type: string
              enum:
                - '1'
                - '2'
        - name: status
          required: false
          in: query
          description: 'Default Value: [Active,Inactive,Suspended,Restored]'
          schema:
            type: array
            items:
              type: string
              enum:
                - Active
                - Inactive
                - Suspended
                - Archived
                - Restored
        - name: sort_by
          required: false
          in: query
          description: 'Default value : displayName'
          schema:
            example: displayName
            type: string
        - name: include
          required: false
          in: query
          description: >-
            For query include=parent it returns parentOrganization with
            Organization,if exists
          schema:
            type: array
            items:
              type: string
              enum:
                - parent
                - children
                - partnerCriteria
        - name: organizationIds
          required: false
          in: query
          description: >-
            By adding the 'organizationIds' parameter to the API call, you can
            retrieve a list of Organizations information based on the specified
            IDs.
          schema:
            type: array
            items:
              type: string
        - name: vendorProfileId
          required: false
          in: query
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/OrganizationDisplayModel'
                      totalRecords:
                        type: number
                        example: 0
      security:
        - bearer: []
      summary: >-
        Lists the Organization Ancestry Information(Parent Organizations
        Information) for the particular OrganizationId.
      tags:
        - Organizations
  /api/organizations/{organizationId}/ancestries/re-sync:
    post:
      operationId: OrganizationsController_reSyncAncestries
      parameters:
        - name: organizationId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: >-
        Updates Organization's Ancestry Nodes Information and Re-Syncs the
        Ancestry information into the Redis.
      tags:
        - Organizations
  /api/organizations/ancestries/re-sync-all:
    post:
      operationId: OrganizationsController_updateAncestryNodes
      parameters: []
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: >-
        Updates Ancestry Nodes Information for all the Organizations and
        Re-Syncs the Ancestry information into the Redis. CRON - Every Week
      tags:
        - Organizations
  /api/organizations/{organizationId}/audit-trails:
    get:
      operationId: OrganizationsController_getAllAuditTrailsById
      parameters:
        - name: organizationId
          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: sort_by
          required: false
          in: query
          description: 'Default value : modifiedAt'
          schema:
            example: modifiedAt
            type: string
        - name: searchTerm
          required: false
          in: query
          description: 'Search By: action'
          schema:
            enum:
              - UPDATE
              - DELETE
              - INSERT
            type: string
        - name: dateRangeType
          required: false
          in: query
          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
          schema:
            format: date-time
            example: '2026-03-04T17:27:05.470Z'
            type: string
        - name: to
          required: false
          in: query
          schema:
            format: date-time
            example: '2026-03-04T17:27:05.470Z'
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/AuditTrailDisplayModel'
                      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 Organization Audit Trails for given Organization
        Id.
      tags:
        - Organizations
  /api/organizations/{organizationId}/on-boarding-partners:
    get:
      deprecated: true
      operationId: OrganizationsController_getOnBoardingPartner
      parameters:
        - name: organizationId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrganizationOnBoardingDisplayModel'
      security:
        - bearer: []
      summary: Gets the on boarding Partner for an Organization.
      tags:
        - Organizations
  /api/organizations/{organizationId}/on-boarding-partners/{partnerId}:
    delete:
      deprecated: true
      operationId: OrganizationsController_deleteOnBoardingPartner
      parameters:
        - name: organizationId
          required: true
          in: path
          schema:
            type: string
        - name: partnerId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Deletes the on boarding Partner from Organization.
      tags:
        - Organizations
    post:
      deprecated: true
      operationId: OrganizationsController_createOnBoardPartner
      parameters:
        - name: organizationId
          required: true
          in: path
          schema:
            type: string
        - name: partnerId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrganizationOnBoardingDisplayModel'
      security:
        - bearer: []
      summary: Adds the on boarding Partner for Organization.
      tags:
        - Organizations
  /api/organizations/{organizationId}/setup-status:
    get:
      operationId: OrganizationsController_setupStatus
      parameters:
        - 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/OrganizationSetupStatusDto'
                      totalRecords:
                        type: number
                        example: 0
      security:
        - bearer: []
      summary: Gets the Organization Setup Status information.
      tags:
        - Organizations
  /api/organizations/{organizationId}/addresses:
    post:
      operationId: OrganizationsController_createAddresses
      parameters:
        - name: organizationId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddAddressesDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
        '201':
          description: ''
          content:
            application/json:
              schema:
                type: object
      security:
        - bearer: []
      summary: Creates a new organization address
      tags:
        - Organizations
    get:
      operationId: OrganizationsController_listAddresses
      parameters:
        - 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/PartyAddressDisplayModel'
                      totalRecords:
                        type: number
                        example: 0
      security:
        - bearer: []
      summary: Lists the organization addresses
      tags:
        - Organizations
  /api/organizations/sync/types:
    post:
      deprecated: true
      operationId: OrganizationsController_script
      parameters: []
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: >-
        The purpose of this API is to run a background script that synchronizes
        all organization types, ensuring they are set to either 1 or 2 based on
        the organization’s type.
      tags:
        - Organizations
  /api/seed-data/organization-types:
    get:
      operationId: SeedDataController_getOrganizationTypes
      parameters: []
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/OrganizationType'
                      totalRecords:
                        type: number
                        example: 0
      security:
        - bearer: []
      summary: List the organization types
      tags:
        - SeedData
  /api/seed-data/organization-status-types:
    get:
      operationId: SeedDataController_getOrganizationStatusTypes
      parameters: []
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/OrganizationStatusType'
                      totalRecords:
                        type: number
                        example: 0
      security:
        - bearer: []
      summary: List the organization status types
      tags:
        - SeedData
  /api/seed-data/subscriber-status-types:
    get:
      operationId: SeedDataController_getOSubscriberStatusTypes
      parameters: []
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/SubscriberStatusType'
                      totalRecords:
                        type: number
                        example: 0
      security:
        - bearer: []
      summary: List the Subscriber status types
      tags:
        - SeedData
  /api/seed-data/salutation-types:
    get:
      operationId: SeedDataController_getSalutationTypes
      parameters: []
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/SalutationType'
                      totalRecords:
                        type: number
                        example: 0
      security:
        - bearer: []
      summary: List the salutation types
      tags:
        - SeedData
  /api/seed-data/address-types:
    get:
      operationId: SeedDataController_getAddressTypes
      parameters: []
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/AddressType'
                      totalRecords:
                        type: number
                        example: 0
      security:
        - bearer: []
      summary: List the Address types
      tags:
        - SeedData
  /api/seed-data/staff-member-types:
    get:
      operationId: SeedDataController_getStaffMemberTypes
      parameters: []
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/StaffMemberType'
                      totalRecords:
                        type: number
                        example: 0
      security:
        - bearer: []
      summary: List the Staff Member types
      tags:
        - SeedData
  /api/seed-data/ecg-products:
    get:
      operationId: SeedDataController_getEcgProducts
      parameters: []
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/Product'
                      totalRecords:
                        type: number
                        example: 0
      security:
        - bearer: []
      summary: List ECG Products.
      tags:
        - SeedData
  /api/seed-data/timezones:
    get:
      operationId: SeedDataController_getTimezones
      parameters: []
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/TimezoneTypeDisplayModel'
                      totalRecords:
                        type: number
                        example: 0
      security:
        - bearer: []
      summary: Lists the time zones
      tags:
        - SeedData
  /api/seed-data/event-names:
    get:
      operationId: SeedDataController_getApptivoPayloadTypes
      parameters: []
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/ApptivoPayloadType'
                      totalRecords:
                        type: number
                        example: 0
      security:
        - bearer: []
      summary: List the Apptivo Event Names
      tags:
        - SeedData
  /api/seed-data/phone-types:
    get:
      operationId: SeedDataController_listPhoneTypes
      parameters: []
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/PhoneTypes'
                      totalRecords:
                        type: number
                        example: 0
      security:
        - bearer: []
      summary: List the Phone Types.
      tags:
        - SeedData
  /api/seed-data/region-codes:
    get:
      operationId: SeedDataController_listRegion
      parameters: []
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/RegionCodes'
                      totalRecords:
                        type: number
                        example: 0
      security:
        - bearer: []
      summary: Lists the Region Codes.
      tags:
        - SeedData
  /api/seed-data/country-codes:
    get:
      operationId: SeedDataController_listCountryCodes
      parameters: []
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/IsoCodesDto'
                      totalRecords:
                        type: number
                        example: 0
      security:
        - bearer: []
      summary: Lists all the available Country Codes.
      tags:
        - SeedData
  /api/seed-data/state-codes:
    get:
      operationId: SeedDataController_listStateCodes
      parameters:
        - name: countryCode
          required: true
          in: query
          schema:
            example: string
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/IsoCodesDto'
                      totalRecords:
                        type: number
                        example: 0
      security:
        - bearer: []
      summary: Lists all the available State Codes.
      tags:
        - SeedData
  /api/seed-data/blood-types:
    get:
      operationId: SeedDataController_listBloodTypes
      parameters: []
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/seedBloodTypeDto'
                      totalRecords:
                        type: number
                        example: 0
      security:
        - bearer: []
      summary: Lists all of the available blood types.
      tags:
        - SeedData
  /api/member-statistics:
    get:
      operationId: StatisticsController_getMemberStatistics
      parameters: []
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MemberStatisticsDisplayModel'
      security:
        - bearer: []
      summary: Lists all the available member statistics.
      tags:
        - Statistics
  /api/organizations/{organizationId}/member-statistics:
    get:
      operationId: StatisticsController_getOrgMemberStatistics
      parameters:
        - name: organizationId
          required: true
          in: path
          schema:
            type: string
        - name: includeChildOrganizations
          required: false
          in: query
          schema:
            example: false
            type: boolean
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrganizationStatisticsDisplayModel'
      security:
        - bearer: []
      summary: Lists all the available organization statistics.
      tags:
        - Statistics
  /api/organizations/type-update:
    post:
      operationId: OrganizationsTypeController_getAuditTrailsForAll
      parameters: []
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SetOrganizationTypeResponseWrapperDto'
      security:
        - bearer: []
      summary: Migrate Organization from type=2 to type=1 for all the organizations.
      tags:
        - Organizations-Type
  /api/apptivo-payloads:
    get:
      operationId: ApptivoPayloadController_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 By: errorMessage'
          schema:
            type: string
        - name: status
          required: false
          in: query
          schema:
            enum:
              - success
              - failure
            type: string
        - name: eventName
          required: false
          in: query
          schema:
            enum:
              - ecg.subscriber.created
              - ecg.subscriber.updated
              - ecg.subscriber.deleted
              - ecg.partner.created
              - ecg.partner.updated
              - ecg.partner.deleted
              - ecg.organization.created
              - ecg.organization.updated
              - ecg.organization.deleted
            type: string
        - name: sort_by
          required: false
          in: query
          description: 'Default value : createdAt'
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/ApptivoPayloadDisplayModel'
                      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 Apptivo Payloads.
      tags:
        - ApptivoPayloads
  /api/users:
    get:
      operationId: UserController_listUsers
      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: firstName, lastName, email or
            fullName(firstName+lastName).
          schema:
            type: string
        - name: roles
          required: false
          in: query
          description: Filters based on the roles selected
          schema:
            type: array
            items:
              type: string
              enum:
                - ecg-admin
                - subscriber
                - org-admin
                - partner
        - name: excludeRoles
          required: false
          in: query
          description: Filters and Excludes the roles that are being selected
          schema:
            type: array
            items:
              type: string
              enum:
                - ecg-admin
                - subscriber
                - org-admin
                - partner
        - name: personIds
          required: false
          in: query
          description: Filters based on the person ids
          schema:
            type: array
            items:
              type: string
        - name: organizationIds
          required: false
          in: query
          description: Filters based on the organization ids
          schema:
            type: array
            items:
              type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/ListUsersDisplayModel'
                      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 Users
      tags:
        - Users
  /api/accounts/audit-trails:
    get:
      operationId: UserController_getAuditTrailsForAll
      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: sort_by
          required: false
          in: query
          description: 'Default value : modifiedAt'
          schema:
            example: modifiedAt
            type: string
        - name: searchTerm
          required: false
          in: query
          description: 'Search By: action'
          schema:
            enum:
              - UPDATE
              - DELETE
              - INSERT
            type: string
        - name: dateRangeType
          required: false
          in: query
          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
          schema:
            format: date-time
            example: '2026-03-04T17:27:05.470Z'
            type: string
        - name: to
          required: false
          in: query
          schema:
            format: date-time
            example: '2026-03-04T17:27:05.470Z'
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/AuditTrailDisplayModel'
                      currentPageNumber:
                        type: number
                        example: 0
                      recordsPerPage:
                        type: number
                        example: 0
                      totalRecords:
                        type: number
                        example: 0
                      totalPages:
                        type: number
                        example: 0
      security:
        - bearer: []
      summary: Lists available Account Audit Trails for all users
      tags:
        - Users
  /api/users/{userId}/accounts:
    get:
      operationId: UserController_getAccountByType
      parameters:
        - name: userId
          required: true
          in: path
          schema:
            type: string
        - name: type
          required: true
          in: query
          description: 'Default value : local'
          schema:
            enum:
              - idp
              - local
            type: string
        - name: include
          required: false
          in: query
          schema:
            type: array
            items:
              type: string
              enum:
                - permissions
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountRolesDisplayModel'
      security:
        - bearer: []
      summary: Get's User account information based on PersonId or CognitoUserId.
      tags:
        - Users
  /api/users/backup:
    post:
      operationId: UserController_backUpCognitoUsers
      parameters: []
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: BackUp Cognito Users Information.
      tags:
        - Users
  /api/users/restore:
    post:
      operationId: UserController_restoreCognitoUsers
      parameters: []
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Restore Cognito Users Information.
      tags:
        - Users
  /api/users/remove:
    post:
      operationId: UserController_removeUser
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddEmailDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: >-
        Based on a user's email address, this API deletes their account
        information and removes them from cognito system
      tags:
        - Users
  /api/users/{userId}:
    delete:
      externalDocs:
        url: >-
          https://ecg.atlassian.net/wiki/spaces/ACM/pages/1996357722/STORY+-+Remove+User
      operationId: UserController_removeUserById
      parameters:
        - name: userId
          required: true
          in: path
          schema:
            type: string
        - name: type
          required: true
          in: query
          description: 'Default value : local'
          schema:
            enum:
              - idp
              - local
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: >-
        The purpose of this API is to delete the user information from the
        system
      tags:
        - Users
  /api/people/{personId}/reset-password:
    post:
      operationId: PeopleController_resetUserPassword
      parameters:
        - name: personId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ResetPasswordDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Resets User Password.
      tags:
        - People
  /api/people/{personId}/resend-credentials:
    post:
      operationId: PeopleController_resendCredentials
      parameters:
        - name: personId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Resends the User Credentials
      tags:
        - People
  /api/people:
    post:
      operationId: PeopleController_addPerson
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreatePersonDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PersonDisplayModel'
      security:
        - bearer: []
      summary: Adds the Person Information.
      tags:
        - People
  /api/people/{personId}/accounts:
    post:
      operationId: PeopleController_addUserAccount
      parameters:
        - name: personId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddAccountDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountDisplayModel'
      security:
        - bearer: []
      summary: Adds the User account for a given Person.
      tags:
        - People
    patch:
      operationId: PeopleController_updateAccountEmail
      parameters:
        - name: personId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddEmailDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountDisplayModel'
      security:
        - bearer: []
      summary: >-
        Updates the User Account for a given Person. This API serves the purpose
        of updating the User Account Email Address and sets new password for the
        same.
      tags:
        - People
  /api/people/{personId}:
    get:
      operationId: PeopleController_getPersonById
      parameters:
        - name: personId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PersonDisplayModel'
      security:
        - bearer: []
      summary: Gets the Person information by Id.
      tags:
        - People
    patch:
      operationId: PeopleController_update
      parameters:
        - name: personId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        description: >+

          In the preceding JSON:

          1. The 'op' property indicates the type of operation. 


          2. The 'path' property indicates the element to update. 


          3. The 'value' property provides the new value. - The *TYPE* of
          'value' depends on the *TYPE* of the element in 'path'




          *For Example: If TYPE of element in path: '/isProvider' is 'boolean' ,
          then The TYPE of Value should be 'boolean'*   




          op can be 'add' , 'replace' or 'remove'    


          1. add : Add a property or array element. For existing property: set
          value. 


          2. remove : Remove a property or array element. 


          3. replace : Same as remove followed by add at same location. 


        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/JsonPatchDocumentDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PersonDisplayModel'
      security:
        - bearer: []
      summary: Patches the Person information by updating the items.
      tags:
        - People
  /api/people/{personId}/change-password:
    post:
      operationId: PeopleController_changePassword
      parameters:
        - name: personId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdatePasswordDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      summary: Changes Account Password for a given Person.
      tags:
        - People
  /api/people/re-sync:
    post:
      operationId: PeopleController_reSync
      parameters:
        - name: id
          required: true
          in: query
          description: PersonId or SubjectId(Bearer Token Sub)
          schema:
            type: string
        - name: type
          required: true
          in: query
          description: Person or Sub
          schema:
            enum:
              - person
              - sub
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Re-sync single person's information
      tags:
        - People
  /api/people/{personId}/accounts/audit-trails:
    get:
      operationId: PeopleController_getAuditTrails
      parameters:
        - name: personId
          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: sort_by
          required: false
          in: query
          description: 'Default value : modifiedAt'
          schema:
            example: modifiedAt
            type: string
        - name: searchTerm
          required: false
          in: query
          description: 'Search By: action'
          schema:
            enum:
              - UPDATE
              - DELETE
              - INSERT
            type: string
        - name: dateRangeType
          required: false
          in: query
          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
          schema:
            format: date-time
            example: '2026-03-04T17:27:05.470Z'
            type: string
        - name: to
          required: false
          in: query
          schema:
            format: date-time
            example: '2026-03-04T17:27:05.470Z'
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/AuditTrailDisplayModel'
                      currentPageNumber:
                        type: number
                        example: 0
                      recordsPerPage:
                        type: number
                        example: 0
                      totalRecords:
                        type: number
                        example: 0
                      totalPages:
                        type: number
                        example: 0
      security:
        - bearer: []
      summary: Lists available Account Audit Trails for given PersonId
      tags:
        - People
  /api/people/re-sync-batch:
    post:
      operationId: PeopleController_reSyncBatch
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReSyncPersonBatchDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
        '202':
          description: ''
          content:
            application/json:
              schema:
                type: object
      security:
        - bearer: []
      summary: Re-sync person's information in batch of 100 person Ids
      tags:
        - People
  /api/staff-members/audit-trails:
    get:
      operationId: StaffMembersController_getAuditTrailsForAll
      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: sort_by
          required: false
          in: query
          description: 'Default value : modifiedAt'
          schema:
            example: modifiedAt
            type: string
        - name: searchTerm
          required: false
          in: query
          description: 'Search By: action'
          schema:
            enum:
              - UPDATE
              - DELETE
              - INSERT
            type: string
        - name: dateRangeType
          required: false
          in: query
          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
          schema:
            format: date-time
            example: '2026-03-04T17:27:05.470Z'
            type: string
        - name: to
          required: false
          in: query
          schema:
            format: date-time
            example: '2026-03-04T17:27:05.470Z'
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/AuditTrailDisplayModel'
                      currentPageNumber:
                        type: number
                        example: 0
                      recordsPerPage:
                        type: number
                        example: 0
                      totalRecords:
                        type: number
                        example: 0
                      totalPages:
                        type: number
                        example: 0
      security:
        - bearer: []
      summary: Lists available Staff Member Audit Trails for all staffMembers
      tags:
        - Staff-Members
  /api/organization-block-lists/audit-trails:
    get:
      operationId: StaffMembersController_getOrgBlockListAuditTrailsForAll
      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: sort_by
          required: false
          in: query
          description: 'Default value : modifiedAt'
          schema:
            example: modifiedAt
            type: string
        - name: searchTerm
          required: false
          in: query
          description: 'Search By: action'
          schema:
            enum:
              - UPDATE
              - DELETE
              - INSERT
            type: string
        - name: dateRangeType
          required: false
          in: query
          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
          schema:
            format: date-time
            example: '2026-03-04T17:27:05.470Z'
            type: string
        - name: to
          required: false
          in: query
          schema:
            format: date-time
            example: '2026-03-04T17:27:05.470Z'
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/AuditTrailDisplayModel'
                      currentPageNumber:
                        type: number
                        example: 0
                      recordsPerPage:
                        type: number
                        example: 0
                      totalRecords:
                        type: number
                        example: 0
                      totalPages:
                        type: number
                        example: 0
      security:
        - bearer: []
      summary: Lists available Organization Block List Audit Trails for all staffMember
      tags:
        - Staff-Members
  /api/organizations/{organizationId}/staff-members:
    get:
      operationId: StaffMembersController_getAllStaffMembers
      parameters:
        - name: organizationId
          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: searchTerm
          required: false
          in: query
          description: >-
            Search By: firstName, lastName, contactEmailAddress or
            fullName(firstName+lastName i.e. 'John Doe')
          schema:
            type: string
        - name: include
          required: false
          in: query
          description: >-
            For query include=organization it returns Staff Member with
            organization ,if exists
          schema:
            enum:
              - organization
            type: string
        - name: sort_by
          required: false
          in: query
          description: 'Default value : id'
          schema:
            example: id
            type: string
        - name: status
          required: false
          in: query
          schema:
            type: array
            items:
              type: string
              enum:
                - restored
                - archived
                - active
                - inactive
        - name: includeParentStaff
          required: false
          in: query
          schema:
            enum:
              - 'true'
              - 'false'
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/StaffMemberDisplayModel'
                      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 Staff Members.
      tags:
        - Staff-Members
    post:
      operationId: StaffMembersController_addStaffMember
      parameters:
        - name: organizationId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddStaffMemberDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StaffMemberDisplayModel'
      security:
        - bearer: []
      summary: Adds the Staff Member.
      tags:
        - Staff-Members
  /api/organizations/{organizationId}/designated-staff-members:
    get:
      externalDocs:
        url: >-
          https://ecg.atlassian.net/wiki/spaces/ACM/pages/1988853761/STORY+-+Designated+Staff+Members+List
      operationId: StaffMembersController_designatedStaffMembers
      parameters:
        - name: organizationId
          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: searchTerm
          required: false
          in: query
          description: >-
            Search By: firstName, lastName, contactEmailAddress or
            fullName(firstName+lastName i.e. 'John Doe')
          schema:
            type: string
        - name: includeParentStaff
          required: false
          in: query
          schema:
            enum:
              - 'true'
              - 'false'
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/ListUsersDisplayModel'
                      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 designated ECG Admins and Staff Members based on the
        OrganizationID.
      tags:
        - Staff-Members
  /api/organizations/{organizationId}/staff-members/{personId}:
    get:
      operationId: StaffMembersController_getStaffMemberById
      parameters:
        - name: organizationId
          required: true
          in: path
          schema:
            type: string
        - name: personId
          required: true
          in: path
          schema:
            type: string
        - name: include
          required: false
          in: query
          description: >-
            For query include=organization it returns Staff Member with
            organization ,if exists
          schema:
            enum:
              - organization
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StaffMemberDisplayModel'
      security:
        - bearer: []
      summary: Get the Staff Member for organization.
      tags:
        - Staff-Members
    patch:
      operationId: StaffMembersController_update
      parameters:
        - name: organizationId
          required: true
          in: path
          schema:
            type: string
        - name: personId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        description: >+

          In the preceding JSON:

          1. The 'op' property indicates the type of operation. 


          2. The 'path' property indicates the element to update. 


          3. The 'value' property provides the new value. - The *TYPE* of
          'value' depends on the *TYPE* of the element in 'path'




          *For Example: If TYPE of element in path: '/isProvider' is 'boolean' ,
          then The TYPE of Value should be 'boolean'*   




          op can be 'add' , 'replace' or 'remove'    


          1. add : Add a property or array element. For existing property: set
          value. 


          2. remove : Remove a property or array element. 


          3. replace : Same as remove followed by add at same location. 


        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/JsonPatchDocumentDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StaffMemberDisplayModel'
      security:
        - bearer: []
      summary: Patches the Staff Member information by updating the items.
      tags:
        - Staff-Members
    delete:
      operationId: StaffMembersController_deleteById
      parameters:
        - name: organizationId
          required: true
          in: path
          schema:
            type: string
        - name: personId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: >-
        Deletes the Staff Member information for an organization from the
        system, 
                    and will also remove the account information from cognito if any account information is associated for that staff member.
      tags:
        - Staff-Members
  /api/staff-members/{personId}:
    get:
      operationId: StaffMembersController_getStaffMemberByPersonId
      parameters:
        - name: personId
          required: true
          in: path
          schema:
            type: string
        - name: include
          required: false
          in: query
          description: >-
            For query include=organization it returns Staff Member with
            organization ,if exists
          schema:
            enum:
              - organization
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StaffMemberDisplayModel'
      security:
        - bearer: []
      summary: Get the Staff Member by person Id
      tags:
        - Staff-Members
  /api/organizations/{organizationId}/staff-members/{personId}/archive:
    post:
      operationId: StaffMembersController_archiveStaffMember
      parameters:
        - name: organizationId
          required: true
          in: path
          schema:
            type: string
        - name: personId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Archive the Staff Member for organization.
      tags:
        - Staff-Members
  /api/organizations/{organizationId}/staff-members/{personId}/restore:
    post:
      operationId: StaffMembersController_restoreStaffMember
      parameters:
        - name: organizationId
          required: true
          in: path
          schema:
            type: string
        - name: personId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Restore the Staff Member for organization.
      tags:
        - Staff-Members
  /api/organizations/{organizationId}/staff-members/{personId}/activate:
    post:
      operationId: StaffMembersController_activateStaffMember
      parameters:
        - name: organizationId
          required: true
          in: path
          schema:
            type: string
        - name: personId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Activate the Staff Member for organization.
      tags:
        - Staff-Members
  /api/organizations/{organizationId}/staff-members/{personId}/deactivate:
    post:
      operationId: StaffMembersController_deActivateStaffMember
      parameters:
        - name: organizationId
          required: true
          in: path
          schema:
            type: string
        - name: personId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Deactivate the Staff Member for organization.
      tags:
        - Staff-Members
  /api/organizations/{organizationId}/staff-members/{personId}/audit-trails:
    get:
      operationId: StaffMembersController_getAuditTrailsForId
      parameters:
        - name: personId
          required: true
          in: path
          schema:
            type: string
        - name: organizationId
          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: sort_by
          required: false
          in: query
          description: 'Default value : modifiedAt'
          schema:
            example: modifiedAt
            type: string
        - name: searchTerm
          required: false
          in: query
          description: 'Search By: action'
          schema:
            enum:
              - UPDATE
              - DELETE
              - INSERT
            type: string
        - name: dateRangeType
          required: false
          in: query
          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
          schema:
            format: date-time
            example: '2026-03-04T17:27:05.470Z'
            type: string
        - name: to
          required: false
          in: query
          schema:
            format: date-time
            example: '2026-03-04T17:27:05.470Z'
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/AuditTrailDisplayModel'
                      currentPageNumber:
                        type: number
                        example: 0
                      recordsPerPage:
                        type: number
                        example: 0
                      totalRecords:
                        type: number
                        example: 0
                      totalPages:
                        type: number
                        example: 0
      security:
        - bearer: []
      summary: Lists  available Staff Member Audit Trails for given personId
      tags:
        - Staff-Members
  /api/staff-members/{personId}/organization-block-lists/audit-trails:
    get:
      operationId: StaffMembersController_getOrgBlockListAuditTrails
      parameters:
        - name: personId
          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: sort_by
          required: false
          in: query
          description: 'Default value : modifiedAt'
          schema:
            example: modifiedAt
            type: string
        - name: searchTerm
          required: false
          in: query
          description: 'Search By: action'
          schema:
            enum:
              - UPDATE
              - DELETE
              - INSERT
            type: string
        - name: dateRangeType
          required: false
          in: query
          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
          schema:
            format: date-time
            example: '2026-03-04T17:27:05.470Z'
            type: string
        - name: to
          required: false
          in: query
          schema:
            format: date-time
            example: '2026-03-04T17:27:05.470Z'
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/AuditTrailDisplayModel'
                      currentPageNumber:
                        type: number
                        example: 0
                      recordsPerPage:
                        type: number
                        example: 0
                      totalRecords:
                        type: number
                        example: 0
                      totalPages:
                        type: number
                        example: 0
      security:
        - bearer: []
      summary: Lists available Organization Block List Audit Trails for given personId
      tags:
        - Staff-Members
  /api/staff-members/{personId}/blocked-organizations:
    get:
      operationId: StaffMembersController_listBlockedOrganizations
      parameters:
        - name: personId
          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: searchTerm
          required: false
          in: query
          description: >-
            Search By: firstName, lastName, contactEmailAddress or
            fullName(firstName+lastName i.e. 'John Doe')
          schema:
            type: string
        - name: include
          required: false
          in: query
          description: >-
            For query include=organization it returns Staff Member with
            organization ,if exists
          schema:
            enum:
              - organization
            type: string
        - name: sort_by
          required: false
          in: query
          description: 'Default value : id'
          schema:
            example: id
            type: string
        - name: status
          required: false
          in: query
          schema:
            type: array
            items:
              type: string
              enum:
                - restored
                - archived
                - active
                - inactive
        - name: includeParentStaff
          required: false
          in: query
          schema:
            enum:
              - 'true'
              - 'false'
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/OrganizationDisplayModel'
                      currentPageNumber:
                        type: number
                        example: 0
                      recordsPerPage:
                        type: number
                        example: 0
                      totalRecords:
                        type: number
                        example: 0
                      totalPages:
                        type: number
                        example: 0
      security:
        - bearer: []
      summary: List Blocked Organizations for Staff Member.
      tags:
        - Staff-Members
  /api/organizations/{organizationId}/staff-members/{personId}/block:
    post:
      operationId: StaffMembersController_blockOrganization
      parameters:
        - name: personId
          required: true
          in: path
          schema:
            type: string
        - name: organizationId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Block Organization for Staff Member.
      tags:
        - Staff-Members
  /api/organizations/{organizationId}/staff-members/{personId}/unblock:
    post:
      operationId: StaffMembersController_unblockOrganization
      parameters:
        - name: personId
          required: true
          in: path
          schema:
            type: string
        - name: organizationId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Unblock Organization for Staff Member.
      tags:
        - Staff-Members
  /api/staff-members/{personId}/organizations:
    get:
      operationId: StaffMembersController_getOrgHierarchy
      parameters:
        - name: personId
          required: true
          in: path
          schema:
            type: string
        - name: mode
          required: true
          in: query
          schema:
            enum:
              - flat
              - nested
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/NestedStaffHierarchyDisplayModel'
                  - allOf:
                      - properties:
                          items:
                            type: array
                            items:
                              $ref: >-
                                #/components/schemas/FlatStaffHierarchyDisplayModel
                          totalRecords:
                            type: number
                            example: 0
      security:
        - bearer: []
      summary: Gets Staff Member Organization Hierarchy
      tags:
        - Staff-Members
  /api/v1/organization-transfers/{organizationId}/initiate:
    post:
      description: Permissions needed - organization.transfer
      externalDocs:
        description: >-
          Visit the confluence story for more information - OXREF | Organization
          Transfer API
        url: >-
          https://ecg.atlassian.net/wiki/spaces/ADDI/pages/2643525633/OXREF+Organization+Transfer+API#API---INITIATE-SINGLE-ORGANIZATION-TRANSFER
      operationId: OrganizationTransfersController_transferOrg
      parameters:
        - name: organizationId
          required: true
          in: path
          schema:
            example: 42e7e348-ebb0-4c87-b068-b84cb3c743f9
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TransferOrganizationDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrganizationDisplayModel'
      security:
        - bearer: []
      summary: >-
        The purpose of this API to transfer an organization from source parent
        organization to target parent organization.
      tags:
        - Organization Transfer
  /api/v1/organization-transfers/{organizationId}/impacted-subscribers/count:
    get:
      description: Permissions needed - organization.transfer
      externalDocs:
        description: >-
          Visit the confluence story for more information - STORY - Retrieve
          Count of Impacted Subscribers
        url: >-
          https://ecg.atlassian.net/wiki/spaces/ADDI/pages/2773483521/OXFER+Transfer+Initiation+API#API---Count-of-Impacted-Subscribers
      operationId: OrganizationTransfersController_impactedSubscribersCount
      parameters:
        - name: organizationId
          required: true
          in: path
          schema:
            example: 42e7e348-ebb0-4c87-b068-b84cb3c743f9
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ImpactedSubscriberCountDisplayModel'
      security:
        - bearer: []
      summary: >-
        This API retrieves the count of impacted subscribers due to the
        organization transfer.
      tags:
        - Organization Transfer
  /api/v1/organization-transfers/{organizationId}/histories:
    get:
      description: Permissions needed - organization.transfer
      externalDocs:
        description: >-
          Visit the confluence story for more information - STORY -  List Single
          Organization Transfer History
        url: >-
          https://ecg.atlassian.net/wiki/spaces/ADDI/pages/2773483521/OXFER+Transfer+Initiation+API#API---List-Single-Organization-Transfer-History
      operationId: OrganizationTransfersController_listHistories
      parameters:
        - name: organizationId
          required: true
          in: path
          schema:
            example: 7151e6ce-07e1-4a81-823e-6db3f5f14dd5
            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
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: >-
                            #/components/schemas/OrganizationHistoryActivityDisplayModel
                      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 the available Organization Transfer
        history for organization based on query in paginated format.
      tags:
        - Organization Transfer
  /api/subscribers/advanced-search:
    get:
      operationId: SubscribersController_advancedSearch
      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: firstName, lastName, contactEmailAddress or
            fullName(firstName+lastName) of Subscriber
          schema:
            type: string
        - name: include
          required: false
          in: query
          description: >-
            For query include=organization it returns subscribers with
            organizations,if exists
          schema:
            type: array
            items:
              type: string
              enum:
                - organization
        - name: sort_by
          required: false
          in: query
          description: 'Default value : firstName'
          schema:
            example: firstName
            enum:
              - firstName
              - lastName
              - createdAt
              - lastStatusChangedAt
            type: string
        - name: organizationId
          required: false
          in: query
          schema:
            type: string
        - name: nonPERS
          required: false
          in: query
          schema:
            example: false
            type: boolean
        - name: subscriberIds
          required: false
          in: query
          description: >-
            By adding the 'subscriberIds' parameter to the API call, you can
            retrieve a list of subscriber information based on the specified
            IDs.
          schema:
            type: array
            items:
              type: string
        - name: onBoardPartnerIds
          required: false
          in: query
          description: >-
            By adding the 'onBoardPartnerIds' parameter to the API call, you can
            retrieve a list of subscriber information based on the Partner IDs.
          deprecated: true
          schema:
            type: array
            items:
              type: string
        - name: xmitId
          required: false
          in: query
          description: >-
            Subscribers information will be obtained from the device log using
            the XMIT Id, utilizing the codes for Anelto
            (anelto.pro-health-console) and Rapid (rapid.emergency-response).
          schema:
            type: string
        - name: subscriberStatus
          required: false
          in: query
          schema:
            type: array
            items:
              type: string
              enum:
                - Under Review
                - Active
                - On Hold
                - Cancelled
                - Closed
                - Created
                - Anonymized
                - Away
                - Opt-Out
                - Unenrolled
        - name: contactId
          required: false
          in: query
          schema:
            type: string
        - name: actionPlanCode
          required: false
          in: query
          schema:
            type: string
        - name: mrnNumber
          required: false
          in: query
          schema:
            type: string
        - name: metadataKey
          required: false
          in: query
          schema:
            type: string
        - name: metadataValue
          required: false
          in: query
          schema:
            type: string
        - name: status
          required: false
          in: query
          schema:
            type: array
            items:
              type: string
              enum:
                - restored
                - archived
                - active
                - inactive
      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: An Advanced Search for listing all the Subscribers
      tags:
        - Subscribers
  /api/subscribers/{personId}/crm-sync:
    post:
      operationId: SubscribersController_syncSubscriber
      parameters:
        - name: personId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Syncs the Subscriber information into the CRM
      tags:
        - Subscribers
  /api/subscribers/audit-trails:
    get:
      operationId: SubscribersController_getAuditTrailsForAllSub
      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: sort_by
          required: false
          in: query
          description: 'Default value : modifiedAt'
          schema:
            example: modifiedAt
            type: string
        - name: searchTerm
          required: false
          in: query
          description: 'Search By: action'
          schema:
            enum:
              - UPDATE
              - DELETE
              - INSERT
            type: string
        - name: dateRangeType
          required: false
          in: query
          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
          schema:
            format: date-time
            example: '2026-03-04T17:27:05.470Z'
            type: string
        - name: to
          required: false
          in: query
          schema:
            format: date-time
            example: '2026-03-04T17:27:05.470Z'
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/AuditTrailDisplayModel'
                      currentPageNumber:
                        type: number
                        example: 0
                      recordsPerPage:
                        type: number
                        example: 0
                      totalRecords:
                        type: number
                        example: 0
                      totalPages:
                        type: number
                        example: 0
      security:
        - bearer: []
      summary: Lists available Subscriber Audit Trails for all Subscribers.
      tags:
        - Subscribers
  /api/subscribers/access-rights/audit-trails:
    get:
      operationId: SubscribersController_getSubscriberAccessAuditTrailsForAll
      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: sort_by
          required: false
          in: query
          description: 'Default value : modifiedAt'
          schema:
            example: modifiedAt
            type: string
        - name: searchTerm
          required: false
          in: query
          description: 'Search By: action'
          schema:
            enum:
              - UPDATE
              - DELETE
              - INSERT
            type: string
        - name: dateRangeType
          required: false
          in: query
          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
          schema:
            format: date-time
            example: '2026-03-04T17:27:05.470Z'
            type: string
        - name: to
          required: false
          in: query
          schema:
            format: date-time
            example: '2026-03-04T17:27:05.470Z'
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/AuditTrailDisplayModel'
                      currentPageNumber:
                        type: number
                        example: 0
                      recordsPerPage:
                        type: number
                        example: 0
                      totalRecords:
                        type: number
                        example: 0
                      totalPages:
                        type: number
                        example: 0
      security:
        - bearer: []
      summary: >-
        Lists available Subscriber Access Rights Audit Trails for all
        subscriberAccess
      tags:
        - Subscribers
  /api/subscribers/integrations/apptivo/subscribers-create:
    post:
      operationId: SubscribersController_processCreatedSubscriberWebhook
      parameters: []
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      summary: Subscriber Created Webhook API
      tags:
        - Subscribers
  /api/subscribers/integrations/apptivo/subscribers-update:
    post:
      operationId: SubscribersController_processUpdatedSubscriberWebhook
      parameters: []
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      summary: Subscriber updated Webhook API
      tags:
        - Subscribers
  /api/subscribers/integrations/apptivo/subscribers-delete:
    post:
      operationId: SubscribersController_processDeletedSubscriberWebhook
      parameters: []
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      summary: Subscriber deleted Webhook API
      tags:
        - Subscribers
  /api/subscribers/metadata:
    get:
      operationId: SubscribersController_getByMetadata
      parameters:
        - name: field
          required: true
          in: query
          schema:
            example: string
            type: string
        - name: value
          required: true
          in: query
          schema:
            example: string
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriberDisplayModel'
      security:
        - bearer: []
      summary: Gets the Subscriber information by metadata.
      tags:
        - Subscribers
  /api/subscribers/{personId}/policy-groups:
    post:
      operationId: SubscribersController_addPolicyGroupsToSubscriber
      parameters:
        - name: personId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddPolicyGroupIdsDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriberDisplayModel'
      security:
        - bearer: []
      summary: Adds the Policy Groups to Subscriber.
      tags:
        - Subscribers
  /api/subscribers/{personId}/access-rights/{subscriberAccessId}:
    patch:
      operationId: SubscribersController_updateSubscriberAccessById
      parameters:
        - name: personId
          required: true
          in: path
          schema:
            type: string
        - name: subscriberAccessId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        description: >+

          In the preceding JSON:

          1. The 'op' property indicates the type of operation. 


          2. The 'path' property indicates the element to update. 


          3. The 'value' property provides the new value. - The *TYPE* of
          'value' depends on the *TYPE* of the element in 'path'




          *For Example: If TYPE of element in path: '/isProvider' is 'boolean' ,
          then The TYPE of Value should be 'boolean'*   




          op can be 'add' , 'replace' or 'remove'    


          1. add : Add a property or array element. For existing property: set
          value. 


          2. remove : Remove a property or array element. 


          3. replace : Same as remove followed by add at same location. 


        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/JsonPatchDocumentDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriberAccessDisplayModel'
      security:
        - bearer: []
      summary: >-
        Patches the Subscriber Access information by updating the items they
        were provided.
      tags:
        - Subscribers
  /api/subscribers/{personId}/access-rights:
    post:
      operationId: SubscribersController_createSubscriberAccess
      parameters:
        - name: personId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddSubscriberAccessDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriberAccessDisplayModel'
      security:
        - bearer: []
      summary: Adds the Subscriber Access.
      tags:
        - Subscribers
  /api/subscribers/{personId}/access-rights/{subscriberAccessId}/archive:
    post:
      operationId: SubscribersController_archiveSubscriberAccess
      parameters:
        - name: personId
          required: true
          in: path
          schema:
            type: string
        - name: subscriberAccessId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Archives the Subscriber Access information.
      tags:
        - Subscribers
  /api/subscribers/{personId}/access-rights/{subscriberAccessId}/restore:
    post:
      operationId: SubscribersController_restoreSubscriberAccess
      parameters:
        - name: personId
          required: true
          in: path
          schema:
            type: string
        - name: subscriberAccessId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Restores the Subscriber Access information.
      tags:
        - Subscribers
  /api/subscribers/{personId}/access-rights/{subscriberAccessId}/activate:
    post:
      operationId: SubscribersController_activateSubscriberAccess
      parameters:
        - name: personId
          required: true
          in: path
          schema:
            type: string
        - name: subscriberAccessId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Activate the Subscriber Access information.
      tags:
        - Subscribers
  /api/subscribers/{personId}/access-rights/{subscriberAccessId}/deactivate:
    post:
      operationId: SubscribersController_deactivateSubscriberAccess
      parameters:
        - name: personId
          required: true
          in: path
          schema:
            type: string
        - name: subscriberAccessId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Deactivate the Subscriber Access information.
      tags:
        - Subscribers
  /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 By: firstName, lastName, contactEmailAddress or
            fullName(firstName+lastName) of Subscriber
          schema:
            type: string
        - name: include
          required: false
          in: query
          description: >-
            For query include=organization it returns subscribers with
            organizations,if exists
          schema:
            type: array
            items:
              type: string
              enum:
                - organization
        - name: sort_by
          required: false
          in: query
          description: 'Default value : firstName'
          schema:
            example: firstName
            enum:
              - firstName
              - lastName
              - createdAt
            type: string
        - name: organizationId
          required: false
          in: query
          schema:
            type: string
        - name: nonPERS
          required: false
          in: query
          schema:
            example: false
            type: boolean
        - name: subscriberIds
          required: false
          in: query
          description: >-
            By adding the 'subscriberIds' parameter to the API call, you can
            retrieve a list of subscriber information based on the specified
            IDs.
          schema:
            type: array
            items:
              type: string
        - name: onBoardPartnerIds
          required: false
          in: query
          description: >-
            By adding the 'onBoardPartnerIds' parameter to the API call, you can
            retrieve a list of subscriber information based on the Partner IDs.
          deprecated: true
          schema:
            type: array
            items:
              type: string
        - name: xmitId
          required: false
          in: query
          description: >-
            Subscribers information will be obtained from the device log using
            the XMIT Id, utilizing the codes for Anelto
            (anelto.pro-health-console) and Rapid (rapid.emergency-response).
          schema:
            type: string
        - name: subscriberStatus
          required: false
          in: query
          schema:
            type: array
            items:
              type: string
              enum:
                - Under Review
                - Active
                - On Hold
                - Cancelled
                - Closed
                - Created
                - Anonymized
                - Away
                - Opt-Out
                - Unenrolled
      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/{personId}:
    post:
      operationId: SubscribersController_createSubscriberById
      parameters:
        - name: personId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddSubscriberByIdDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriberDisplayModel'
      security:
        - bearer: []
      summary: Adds the Subscriber By Id.
      tags:
        - Subscribers
    get:
      operationId: SubscribersController_getById
      parameters:
        - name: personId
          required: true
          in: path
          schema:
            type: string
        - name: include
          required: false
          in: query
          schema:
            type: array
            items:
              type: string
              enum:
                - organization
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriberByIdDisplayModel'
      security:
        - bearer: []
      summary: Gets the Subscriber information.
      tags:
        - Subscribers
    delete:
      operationId: SubscribersController_deleteById
      parameters:
        - name: personId
          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: personId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        description: >+

          In the preceding JSON:

          1. The 'op' property indicates the type of operation. 


          2. The 'path' property indicates the element to update. 


          3. The 'value' property provides the new value. - The *TYPE* of
          'value' depends on the *TYPE* of the element in 'path'




          *For Example: If TYPE of element in path: '/isProvider' is 'boolean' ,
          then The TYPE of Value should be 'boolean'*   




          op can be 'add' , 'replace' or 'remove'    


          1. add : Add a property or array element. For existing property: set
          value. 


          2. remove : Remove a property or array element. 


          3. replace : Same as remove followed by add at same location. 


        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/JsonPatchDocumentDto'
      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/legacy-identifier/{legacyIdentifier}:
    get:
      operationId: SubscribersController_getByLegacyIdentifierId
      parameters:
        - name: legacyIdentifier
          required: true
          in: path
          schema:
            type: string
        - name: include
          required: false
          in: query
          schema:
            type: array
            items:
              type: string
              enum:
                - organization
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriberByIdDisplayModel'
      security:
        - bearer: []
      summary: Gets the Subscriber information by legacy Identifier.
      tags:
        - Subscribers
  /api/subscribers/{personId}/archive:
    post:
      operationId: SubscribersController_archive
      parameters:
        - name: personId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Archives the Subscriber information.
      tags:
        - Subscribers
  /api/subscribers/{personId}/restore:
    post:
      operationId: SubscribersController_restore
      parameters:
        - name: personId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Restores the Subscriber information.
      tags:
        - Subscribers
  /api/subscribers/{personId}/activate:
    post:
      operationId: SubscribersController_activate
      parameters:
        - name: personId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Activate the Subscriber information.
      tags:
        - Subscribers
  /api/subscribers/{personId}/deactivate:
    post:
      operationId: SubscribersController_deactivate
      parameters:
        - name: personId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Deactivate the Subscriber information.
      tags:
        - Subscribers
  /api/subscribers/{personId}/audit-trails:
    get:
      operationId: SubscribersController_getAuditTrailsForSubId
      parameters:
        - name: personId
          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: sort_by
          required: false
          in: query
          description: 'Default value : modifiedAt'
          schema:
            example: modifiedAt
            type: string
        - name: searchTerm
          required: false
          in: query
          description: 'Search By: action'
          schema:
            enum:
              - UPDATE
              - DELETE
              - INSERT
            type: string
        - name: dateRangeType
          required: false
          in: query
          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
          schema:
            format: date-time
            example: '2026-03-04T17:27:05.470Z'
            type: string
        - name: to
          required: false
          in: query
          schema:
            format: date-time
            example: '2026-03-04T17:27:05.470Z'
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/AuditTrailDisplayModel'
                      currentPageNumber:
                        type: number
                        example: 0
                      recordsPerPage:
                        type: number
                        example: 0
                      totalRecords:
                        type: number
                        example: 0
                      totalPages:
                        type: number
                        example: 0
      security:
        - bearer: []
      summary: Lists available Subscriber Audit Trails  for given SubscriberId
      tags:
        - Subscribers
  /api/subscribers/{personId}/devices:
    get:
      description: >-
        If active query param not passed both active & deactivated devices will
        be returned
      operationId: SubscribersController_getDevicesForSubId
      parameters:
        - name: personId
          required: true
          in: path
          schema:
            type: string
        - name: active
          required: false
          in: query
          schema:
            type: boolean
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/DeviceLogDisplayModel'
                      totalRecords:
                        type: number
                        example: 0
      security:
        - bearer: []
      summary: Lists available devices for a given Subscriber
      tags:
        - Subscribers
  /api/subscribers/{personId}/access-rights/{subscriberAccessId}/audit-trails:
    get:
      operationId: SubscribersController_getAllSubscriberAccessAuditTrails
      parameters:
        - name: personId
          required: true
          in: path
          schema:
            type: string
        - name: subscriberAccessId
          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: sort_by
          required: false
          in: query
          description: 'Default value : modifiedAt'
          schema:
            example: modifiedAt
            type: string
        - name: searchTerm
          required: false
          in: query
          description: 'Search By: action'
          schema:
            enum:
              - UPDATE
              - DELETE
              - INSERT
            type: string
        - name: dateRangeType
          required: false
          in: query
          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
          schema:
            format: date-time
            example: '2026-03-04T17:27:05.470Z'
            type: string
        - name: to
          required: false
          in: query
          schema:
            format: date-time
            example: '2026-03-04T17:27:05.470Z'
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/AuditTrailDisplayModel'
                      currentPageNumber:
                        type: number
                        example: 0
                      recordsPerPage:
                        type: number
                        example: 0
                      totalRecords:
                        type: number
                        example: 0
                      totalPages:
                        type: number
                        example: 0
      security:
        - bearer: []
      summary: >-
        Lists available Subscriber Access Rights Audit Trails for given
        subscriberAccessId
      tags:
        - Subscribers
  /api/subscribers/{personId}/metadata:
    post:
      operationId: SubscribersController_addMetadata
      parameters:
        - name: personId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/AddMetadataDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriberDisplayModel'
      security:
        - bearer: []
      summary: Adds the Subscriber metadata
      tags:
        - Subscribers
    patch:
      operationId: SubscribersController_updateMetadata
      parameters:
        - name: personId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        description: >+

          In the preceding JSON:

          1. The 'op' property indicates the type of operation. 


          2. The 'path' property indicates the element to update. 


          3. The 'value' property provides the new value. - The *TYPE* of
          'value' depends on the *TYPE* of the element in 'path'




          *For Example: If TYPE of element in path: '/isProvider' is 'boolean' ,
          then The TYPE of Value should be 'boolean'*   




          op can be 'add' , 'replace' or 'remove'    


          1. add : Add a property or array element. For existing property: set
          value. 


          2. remove : Remove a property or array element. 


          3. replace : Same as remove followed by add at same location. 


        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/JsonPatchDocumentDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriberDisplayModel'
      security:
        - bearer: []
      summary: Update subscriber's metadata
      tags:
        - Subscribers
    delete:
      operationId: SubscribersController_delete
      parameters:
        - name: personId
          required: true
          in: path
          schema:
            type: string
        - name: field
          required: true
          in: query
          schema:
            example: string
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Delete the Subscriber's metadata
      tags:
        - Subscribers
  /api/subscribers/{personId}/anonymize:
    post:
      operationId: SubscribersController_anonymizeSubscriber
      parameters:
        - name: personId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Anonymize the Subscriber Information.
      tags:
        - Subscribers
  /subscribers-profile/{subscriberId}:
    post:
      operationId: SubscribersProfileController_create
      parameters:
        - name: subscriberId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateSubscriberDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriberProfileDto'
      security:
        - bearer: []
      summary: Creates a new subscriber
      tags:
        - Subscribers Profile
    get:
      operationId: SubscribersProfileController_findById
      parameters:
        - name: subscriberId
          required: true
          in: path
          description: Subscriber UUID
          schema:
            type: string
        - name: include
          required: false
          in: query
          schema:
            enum:
              - both
              - phoneNumber
              - address
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriberProfileDto'
      security:
        - bearer: []
      summary: Get Subscriber details
      tags:
        - Subscribers Profile
    patch:
      operationId: SubscribersProfileController_update
      parameters:
        - name: subscriberId
          required: true
          in: path
          description: Subscriber UUID
          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/SubscriberProfileDto'
      security:
        - bearer: []
      summary: Updates the subscriber information
      tags:
        - Subscribers Profile
    delete:
      operationId: SubscribersProfileController_delete
      parameters:
        - name: subscriberId
          required: true
          in: path
          description: Subscriber UUID
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Deletes the subscriber information
      tags:
        - Subscribers Profile
  /subscribers-profile/{subscriberId}/metadata:
    post:
      operationId: SubscribersProfileController_addMetadata
      parameters:
        - name: subscriberId
          required: true
          in: path
          description: Subscriber UUID
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/AddMetadataDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriberProfileDto'
      security:
        - bearer: []
      summary: Adds the Subscriber metadata
      tags:
        - Subscribers Profile
    patch:
      operationId: SubscribersProfileController_updateMetadata
      parameters:
        - name: subscriberId
          required: true
          in: path
          description: Subscriber UUID
          schema:
            type: string
      requestBody:
        required: true
        description: >+

          In the preceding JSON:

          1. The 'op' property indicates the type of operation. 


          2. The 'path' property indicates the element to update. 


          3. The 'value' property provides the new value. - The *TYPE* of
          'value' depends on the *TYPE* of the element in 'path'




          *For Example: If TYPE of element in path: '/isProvider' is 'boolean' ,
          then The TYPE of Value should be 'boolean'*   




          op can be 'replace' or 'remove'    


          1. remove : Remove a property or array element. 


          2. replace : Same as remove followed by add at same location. 


        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/JsonPatchDocumentDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriberProfileDto'
      security:
        - bearer: []
      summary: Update a subscriber's metadata
      tags:
        - Subscribers Profile
    delete:
      operationId: SubscribersProfileController_deleteMetadata
      parameters:
        - name: subscriberId
          required: true
          in: path
          description: Subscriber UUID
          schema:
            type: string
        - name: field
          required: true
          in: query
          description: metadata field to delete
          schema: {}
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateResponseDto'
      security:
        - bearer: []
      summary: Delete a field from the Subscriber's metadata
      tags:
        - Subscribers Profile
  /subscribers-profile/{subscriberId}/is-complete:
    get:
      operationId: SubscribersProfileController_isSubscriberComplete
      parameters:
        - name: subscriberId
          required: true
          in: path
          description: Subscriber UUID
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IsSubscriberCompleteResponseDto'
      security:
        - bearer: []
      summary: Checks if subscriber info is complete.
      tags:
        - Subscribers Profile
  /subscribers-profile/{subscriberId}/addresses:
    post:
      operationId: ContactInformationController_createAddress
      parameters:
        - name: subscriberId
          required: true
          in: path
          description: Subscriber UUID
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateSubscriberAddressDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetAddressesDto'
      security:
        - bearer: []
      summary: Creates a new subscriber address
      tags:
        - Subscribers Profile
    get:
      operationId: ContactInformationController_getManyAddresses
      parameters:
        - name: subscriberId
          required: true
          in: path
          description: Subscriber UUID
          schema:
            type: string
        - name: type
          required: false
          in: query
          description: Subscriber address type
          schema:
            enum:
              - primary
              - shipping
              - billing
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetSubscriberAddressDto'
      security:
        - bearer: []
      summary: Get subscriber addresses
      tags:
        - Subscribers Profile
  /subscribers-profile/{subscriberId}/addresses/{addressId}:
    get:
      operationId: ContactInformationController_getAddress
      parameters:
        - name: subscriberId
          required: true
          in: path
          description: Subscriber UUID
          schema:
            type: string
        - name: addressId
          required: true
          in: path
          description: Address UUID
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriberAddressDto'
      security:
        - bearer: []
      summary: Get subscriber address by id
      tags:
        - Subscribers Profile
    delete:
      operationId: ContactInformationController_deleteAddress
      parameters:
        - name: subscriberId
          required: true
          in: path
          description: Subscriber UUID
          schema:
            type: string
        - name: addressId
          required: true
          in: path
          description: Address UUID
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateResponseDto'
      security:
        - bearer: []
      summary: Deletes a subscriber address by id
      tags:
        - Subscribers Profile
    patch:
      operationId: ContactInformationController_updateAddress
      parameters:
        - name: subscriberId
          required: true
          in: path
          description: Subscriber UUID
          schema:
            type: string
        - name: addressId
          required: true
          in: path
          description: Address UUID
          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/UpdateResponseDto'
      security:
        - bearer: []
      summary: Updates a subscriber address by id
      tags:
        - Subscribers Profile
  /subscribers-profile/{subscriberId}/phone-numbers:
    post:
      operationId: ContactInformationController_createPhoneNumber
      parameters:
        - name: subscriberId
          required: true
          in: path
          description: Subscriber UUID
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreatePhoneNumberDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetPhoneNumbersDto'
      security:
        - bearer: []
      summary: Creates a subscriber phone number
      tags:
        - Subscribers Profile
    get:
      operationId: ContactInformationController_getPhoneNumbers
      parameters:
        - name: subscriberId
          required: true
          in: path
          description: Subscriber UUID
          schema:
            type: string
        - name: type
          required: false
          in: query
          description: Subscriber phone number type
          schema:
            enum:
              - Mobile
              - Home
              - Work
              - Main
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PhoneNumberDto'
      security:
        - bearer: []
      summary: Gets subscriber phone numbers
      tags:
        - Subscribers Profile
  /subscribers-profile/{subscriberId}/phone-numbers/{phoneNumberId}:
    get:
      operationId: ContactInformationController_getPhoneNumber
      parameters:
        - name: subscriberId
          required: true
          in: path
          description: Subscriber UUID
          schema:
            type: string
        - name: phoneNumberId
          required: true
          in: path
          description: Phone Number UUID
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PhoneNumberDto'
      security:
        - bearer: []
      summary: Gets a subscriber phone number by id
      tags:
        - Subscribers Profile
    delete:
      operationId: ContactInformationController_deletePhoneNumber
      parameters:
        - name: subscriberId
          required: true
          in: path
          description: Subscriber UUID
          schema:
            type: string
        - name: phoneNumberId
          required: true
          in: path
          description: Phone Number UUID
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateResponseDto'
      security:
        - bearer: []
      summary: Deletes a subscriber phone number by id
      tags:
        - Subscribers Profile
    patch:
      operationId: ContactInformationController_updatePhoneNumber
      parameters:
        - name: subscriberId
          required: true
          in: path
          description: Subscriber UUID
          schema:
            type: string
        - name: phoneNumberId
          required: true
          in: path
          description: Phone Number UUID
          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/UpdateResponseDto'
      security:
        - bearer: []
      summary: Updates a subscriber phone number by id
      tags:
        - Subscribers Profile
  /subscribers-profile/{subscriberId}/calls:
    get:
      operationId: ResponsiblePartyController_subscribersCallList
      parameters:
        - name: subscriberId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriberCallDisplayModel'
      security:
        - bearer: []
      summary: Gets the Subscribers Call List
      tags:
        - Subscribers Profile
  /subscribers-profile/{subscriberId}/reorder-responsible-parties:
    post:
      operationId: ResponsiblePartyController_reorderResponsibleParties
      parameters:
        - name: subscriberId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReorderResponsiblePartyDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ResponsiblePartyDisplayModel'
      security:
        - bearer: []
      summary: Reorders responsible parties' priorities
      tags:
        - Subscribers Profile
  /subscribers-profile/{subscriberId}/responsible-parties:
    post:
      operationId: ResponsiblePartyController_createResponsibleParties
      parameters:
        - name: subscriberId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/AddResponsiblePartyDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ResponsiblePartyDisplayModel'
      security:
        - bearer: []
      summary: Creates responsible parties
      tags:
        - Subscribers Profile
    get:
      operationId: ResponsiblePartyController_getAllResponsibleParties
      parameters:
        - name: subscriberId
          required: true
          in: path
          schema:
            type: string
        - name: searchTerm
          required: false
          in: query
          description: |-
            Search By: firstName, lastName, or email
            @enum responsiblePartyFilterEnum
          schema:
            example: email
            enum:
              - firstName
              - lastName
              - email
            type: string
        - name: include
          required: false
          in: query
          description: >-
            For query include=subscriber it returns Responsible Parties with
            subscriber ,if exists

            @enum responsiblePartyIncludeEnum
          schema:
            example: subscriber
            enum:
              - subscriber
            type: string
        - name: take
          required: false
          in: query
          description: Number of records per page
          schema:
            example: 10
            type: number
        - name: skip
          required: false
          in: query
          description: Number of records to skip
          schema:
            example: 0
            type: number
        - name: sort_by
          required: false
          in: query
          description: '@enum responsiblePartySortEnum'
          schema:
            example: id
            enum:
              - id
              - priority
              - relationship
              - activeStatusChangedAt
              - archivedStatusChangedAt
              - createdAt
              - createdBy
              - updatedAt
              - updatedBy
            type: string
        - name: order_by
          required: false
          in: query
          description: '@enum orderBy'
          schema:
            example: ASC
            enum:
              - ASC
              - DESC
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/ResponsiblePartyDisplayModel'
                      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 available responsible parties
      tags:
        - Subscribers Profile
  /subscribers-profile/{subscriberId}/responsible-parties/{responsiblePartyId}:
    get:
      operationId: ResponsiblePartyController_getResponsibleParty
      parameters:
        - name: subscriberId
          required: true
          in: path
          schema:
            type: string
        - name: responsiblePartyId
          required: true
          in: path
          schema:
            type: string
        - name: include
          required: false
          in: query
          description: >-
            For query include=subscriber it returns Responsible Parties with
            subscriber, if exists
          schema:
            enum:
              - subscriber
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponsiblePartyDisplayModel'
      security:
        - bearer: []
      summary: Gets a responsible party.
      tags:
        - Subscribers Profile
    patch:
      operationId: ResponsiblePartyController_updateResponsibleParty
      parameters:
        - name: subscriberId
          required: true
          in: path
          schema:
            type: string
        - name: responsiblePartyId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        description: >+

          In the preceding JSON:

          1. The 'op' property indicates the type of operation. 


          2. The 'path' property indicates the element to update. 


          3. The 'value' property provides the new value. - The *TYPE* of
          'value' depends on the *TYPE* of the element in 'path'




          *For Example: If TYPE of element in path: '/isProvider' is 'boolean' ,
          then The TYPE of Value should be 'boolean'*   




          op can be 'add' , 'replace' or 'remove'    


          1. add : Add a property or array element. For existing property: set
          value. 


          2. remove : Remove a property or array element. 


          3. replace : Same as remove followed by add at same location. 


        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/JsonPatchDocumentDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponsiblePartyDisplayModel'
      security:
        - bearer: []
      summary: Patches a responsible party.
      tags:
        - Subscribers Profile
    delete:
      operationId: ResponsiblePartyController_deleteById
      parameters:
        - name: subscriberId
          required: true
          in: path
          schema:
            type: string
        - name: responsiblePartyId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateResponseDto'
      security:
        - bearer: []
      summary: Deletes a Responsible Party.
      tags:
        - Subscribers Profile
  /subscribers-profile/{subscriberId}/responsible-parties/{responsiblePartyId}/phone-numbers/{phoneNumberId}:
    patch:
      operationId: ResponsiblePartyController_updateResponsiblePartyPhoneNumbers
      parameters:
        - name: subscriberId
          required: true
          in: path
          schema:
            type: string
        - name: responsiblePartyId
          required: true
          in: path
          schema:
            type: string
        - name: phoneNumberId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        description: >+

          In the preceding JSON:

          1. The 'op' property indicates the type of operation. 


          2. The 'path' property indicates the element to update. 


          3. The 'value' property provides the new value. - The *TYPE* of
          'value' depends on the *TYPE* of the element in 'path'




          *For Example: If TYPE of element in path: '/isProvider' is 'boolean' ,
          then The TYPE of Value should be 'boolean'*   




          op can be 'add' , 'replace' or 'remove'    


          1. add : Add a property or array element. For existing property: set
          value. 


          2. remove : Remove a property or array element. 


          3. replace : Same as remove followed by add at same location. 


        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/JsonPatchDocumentDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponsiblePartyDisplayModel'
      security:
        - bearer: []
      summary: Patches a responsible party's phone numbers.
      tags:
        - Subscribers Profile
    delete:
      operationId: ResponsiblePartyController_deleteResponsiblePartyPhoneById
      parameters:
        - name: subscriberId
          required: true
          in: path
          schema:
            type: string
        - name: responsiblePartyId
          required: true
          in: path
          schema:
            type: string
        - name: phoneNumberId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateResponseDto'
      security:
        - bearer: []
      summary: Deletes a Responsible Party Phone.
      tags:
        - Subscribers Profile
  /subscribers-profile/{subscriberId}/responsible-parties/{responsiblePartyId}/phone-numbers:
    post:
      operationId: ResponsiblePartyController_createResponsiblePartyPhoneNumber
      parameters:
        - name: subscriberId
          required: true
          in: path
          schema:
            type: string
        - name: responsiblePartyId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreatePhoneNumberDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateResponseDto'
      security:
        - bearer: []
      summary: Creates a Responsible Party Phone.
      tags:
        - Subscribers Profile
  /subscribers-profile/{subscriberId}/responsible-parties/{responsiblePartyId}/addresses/{addressId}:
    patch:
      operationId: ResponsiblePartyController_updateResponsiblePartyAddresses
      parameters:
        - name: subscriberId
          required: true
          in: path
          schema:
            type: string
        - name: responsiblePartyId
          required: true
          in: path
          schema:
            type: string
        - name: addressId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        description: >+

          In the preceding JSON:

          1. The 'op' property indicates the type of operation. 


          2. The 'path' property indicates the element to update. 


          3. The 'value' property provides the new value. - The *TYPE* of
          'value' depends on the *TYPE* of the element in 'path'




          *For Example: If TYPE of element in path: '/isProvider' is 'boolean' ,
          then The TYPE of Value should be 'boolean'*   




          op can be 'add' , 'replace' or 'remove'    


          1. add : Add a property or array element. For existing property: set
          value. 


          2. remove : Remove a property or array element. 


          3. replace : Same as remove followed by add at same location. 


        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/JsonPatchDocumentDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponsiblePartyDisplayModel'
      security:
        - bearer: []
      summary: Patches a responsible party's addresses.
      tags:
        - Subscribers Profile
    delete:
      operationId: ResponsiblePartyController_deleteResponsiblePartyAddressById
      parameters:
        - name: subscriberId
          required: true
          in: path
          schema:
            type: string
        - name: responsiblePartyId
          required: true
          in: path
          schema:
            type: string
        - name: addressId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateResponseDto'
      security:
        - bearer: []
      summary: Deletes a Responsible Party Address.
      tags:
        - Subscribers Profile
  /subscribers-profile/{subscriberId}/responsible-parties/{responsiblePartyId}/addresses:
    post:
      operationId: ResponsiblePartyController_createResponsiblePartyAddress
      parameters:
        - name: subscriberId
          required: true
          in: path
          schema:
            type: string
        - name: responsiblePartyId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddAddressInfoDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateResponseDto'
      security:
        - bearer: []
      summary: Creates a Responsible Party Address.
      tags:
        - Subscribers Profile
  /subscribers-profile/{subscriberId}/responsible-parties/{responsiblePartyId}/archive:
    post:
      operationId: ResponsiblePartyController_archiveResponsibleParty
      parameters:
        - name: subscriberId
          required: true
          in: path
          schema:
            type: string
        - name: responsiblePartyId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateResponseDto'
      security:
        - bearer: []
      summary: Archives a responsible party.
      tags:
        - Subscribers Profile
  /subscribers-profile/{subscriberId}/responsible-parties/{responsiblePartyId}/restore:
    post:
      operationId: ResponsiblePartyController_restoreResponsibleParty
      parameters:
        - name: subscriberId
          required: true
          in: path
          schema:
            type: string
        - name: responsiblePartyId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateResponseDto'
      security:
        - bearer: []
      summary: Restores a responsible party.
      tags:
        - Subscribers Profile
  /subscribers-profile/{subscriberId}/responsible-parties/{responsiblePartyId}/activate:
    post:
      operationId: ResponsiblePartyController_activateResponsibleParty
      parameters:
        - name: subscriberId
          required: true
          in: path
          schema:
            type: string
        - name: responsiblePartyId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateResponseDto'
      security:
        - bearer: []
      summary: Activates a responsible party.
      tags:
        - Subscribers Profile
  /subscribers-profile/{subscriberId}/responsible-parties/{responsiblePartyId}/deactivate:
    post:
      operationId: ResponsiblePartyController_deactivateResponsibleParty
      parameters:
        - name: subscriberId
          required: true
          in: path
          schema:
            type: string
        - name: responsiblePartyId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateResponseDto'
      security:
        - bearer: []
      summary: Deactivates a responsible party.
      tags:
        - Subscribers Profile
  /subscribers-profile/{subscriberId}/blood-type:
    post:
      operationId: BloodTypeController_assignBloodType
      parameters:
        - name: subscriberId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AssignBloodTypeDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetBloodTypeDto'
      security:
        - bearer: []
      summary: Assigns a blood type to a subscriber
      tags:
        - Subscribers Profile
    get:
      operationId: BloodTypeController_getBloodType
      parameters:
        - name: subscriberId
          required: true
          in: path
          description: Subscriber UUID
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetBloodTypeDto'
      security:
        - bearer: []
      summary: Get subscriber blood type by id
      tags:
        - Subscribers Profile
    patch:
      operationId: BloodTypeController_updateBloodType
      parameters:
        - name: subscriberId
          required: true
          in: path
          description: Subscriber UUID
          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/GetBloodTypeDto'
      security:
        - bearer: []
      summary: Updates subscriber blood type by id
      tags:
        - Subscribers Profile
  /subscribers-profile/{subscriberId}/medical-conditions:
    post:
      operationId: MedicalConditionsController_createMedicalConditions
      parameters:
        - name: subscriberId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateMedicalConditionDto'
      responses:
        '201':
          description: The record has been successfully created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetMedicalConditionDto'
      security:
        - bearer: []
      summary: creates a new subscriber medical condition
      tags:
        - Subscribers Profile
    get:
      operationId: MedicalConditionsController_getAllMedicalConditions
      parameters:
        - name: subscriberId
          required: true
          in: path
          description: Subscriber UUID
          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
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/GetMedicalConditionDto'
                      currentPageNumber:
                        type: number
                        example: 0
                      recordsPerPage:
                        type: number
                        example: 0
                      totalRecords:
                        type: number
                        example: 0
                      totalPages:
                        type: number
                        example: 0
      security:
        - bearer: []
      summary: Retrieves all medical conditions for a subscriber
      tags:
        - Subscribers Profile
  /subscribers-profile/{subscriberId}/medical-conditions/{conditionId}:
    get:
      operationId: MedicalConditionsController_getMedicalCondition
      parameters:
        - name: subscriberId
          required: true
          in: path
          description: Subscriber UUID
          schema:
            type: string
        - name: conditionId
          required: true
          in: path
          description: Medical Condition UUID
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetMedicalConditionDto'
      security:
        - bearer: []
      summary: Retrieves a medical condition by Id
      tags:
        - Subscribers Profile
    patch:
      operationId: MedicalConditionsController_update
      parameters:
        - name: subscriberId
          required: true
          in: path
          description: Subscriber UUID
          schema:
            type: string
        - name: conditionId
          required: true
          in: path
          description: Medical condition UUID
          schema:
            type: string
      requestBody:
        required: true
        description: >+

          In the preceding JSON:

          1. The 'op' property indicates the type of operation. 


          2. The 'path' property indicates the element to update. 


          3. The 'value' property provides the new value. - The *TYPE* of
          'value' depends on the *TYPE* of the element in 'path'




          *For Example: If TYPE of element in path: '/isProvider' is 'boolean' ,
          then The TYPE of Value should be 'boolean'*   




          op can be 'add' , 'replace' or 'remove'    


          1. add : Add a property or array element. For existing property: set
          value. 


          2. remove : Remove a property or array element. 


          3. replace : Same as remove followed by add at same location. 


        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/JsonPatchDocumentDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetMedicalConditionDto'
      security:
        - bearer: []
      summary: Updates subscriber medical condition
      tags:
        - Subscribers Profile
  /subscribers-profile/{subscriberId}/medical-conditions/{conditionId}/archive:
    post:
      operationId: MedicalConditionsController_archive
      parameters:
        - name: subscriberId
          required: true
          in: path
          description: Subscriber UUID
          schema:
            type: string
        - name: conditionId
          required: true
          in: path
          description: Medical Condition UUID
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Archives subscriber medical condition
      tags:
        - Subscribers Profile
  /subscribers-profile/{subscriberId}/medical-conditions/{conditionId}/restore:
    post:
      operationId: MedicalConditionsController_restore
      parameters:
        - name: subscriberId
          required: true
          in: path
          description: Subscriber UUID
          schema:
            type: string
        - name: conditionId
          required: true
          in: path
          description: Medical Condition UUID
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Restores subscriber medical condition
      tags:
        - Subscribers Profile
  /subscribers-profile/{subscriberId}/medical-procedures:
    get:
      operationId: MedicalProcedureController_getAllMedicalProcedures
      parameters:
        - name: subscriberId
          required: true
          in: path
          description: Subscriber UUID
          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
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/GetMedProcedureDto'
                      currentPageNumber:
                        type: number
                        example: 0
                      recordsPerPage:
                        type: number
                        example: 0
                      totalRecords:
                        type: number
                        example: 0
                      totalPages:
                        type: number
                        example: 0
      security:
        - bearer: []
      summary: Retrieves all medical procedures for a subscriber
      tags:
        - Subscribers Profile
    post:
      operationId: MedicalProcedureController_createMedicalProcedure
      parameters:
        - name: subscriberId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateMedProcedureDto'
      responses:
        '201':
          description: The record has been successfully created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetMedProcedureDto'
      security:
        - bearer: []
      summary: 'Creates a new medical procedure for the subscriber''s profile '
      tags:
        - Subscribers Profile
  /subscribers-profile/{subscriberId}/medical-procedures/{procedureId}:
    get:
      operationId: MedicalProcedureController_getMedicalProcedure
      parameters:
        - name: subscriberId
          required: true
          in: path
          description: Subscriber UUID
          schema:
            type: string
        - name: procedureId
          required: true
          in: path
          description: Medical Procedure UUID
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetMedProcedureDto'
      security:
        - bearer: []
      summary: Retrieves a medical procedure by Id
      tags:
        - Subscribers Profile
    patch:
      operationId: MedicalProcedureController_update
      parameters:
        - name: subscriberId
          required: true
          in: path
          description: Subscriber UUID
          schema:
            type: string
        - name: procedureId
          required: true
          in: path
          description: Medical Procedure UUID
          schema:
            type: string
      requestBody:
        required: true
        description: >+

          In the preceding JSON:

          1. The 'op' property indicates the type of operation. 


          2. The 'path' property indicates the element to update. 


          3. The 'value' property provides the new value. - The *TYPE* of
          'value' depends on the *TYPE* of the element in 'path'




          *For Example: If TYPE of element in path: '/isProvider' is 'boolean' ,
          then The TYPE of Value should be 'boolean'*   




          op can be 'add' , 'replace' or 'remove'    


          1. add : Add a property or array element. For existing property: set
          value. 


          2. remove : Remove a property or array element. 


          3. replace : Same as remove followed by add at same location. 


        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/JsonPatchDocumentDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetMedProcedureDto'
      security:
        - bearer: []
      summary: Updates subscriber medical procedure
      tags:
        - Subscribers Profile
  /subscribers-profile/{subscriberId}/medical-procedures/{procedureId}/archive:
    post:
      operationId: MedicalProcedureController_archive
      parameters:
        - name: subscriberId
          required: true
          in: path
          description: Subscriber UUID
          schema:
            type: string
        - name: procedureId
          required: true
          in: path
          description: Medical Procedure UUID
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Archives subscriber medical procedure
      tags:
        - Subscribers Profile
  /subscribers-profile/{subscriberId}/medical-procedures/{procedureId}/restore:
    post:
      operationId: MedicalProcedureController_restore
      parameters:
        - name: subscriberId
          required: true
          in: path
          description: Subscriber UUID
          schema:
            type: string
        - name: procedureId
          required: true
          in: path
          description: Medical Procedure UUID
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Restores subscriber medical procedure
      tags:
        - Subscribers Profile
  /subscriber-profile/{subscriberId}/medical-allergies:
    post:
      operationId: MedAllergiesController_create
      parameters:
        - name: subscriberId
          required: true
          in: path
          description: Subscriber UUID
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateMedicalAllergyDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetMedicalAllergyDto'
      security:
        - bearer: []
      summary: Creates a new medical allergy for a subscriber
      tags:
        - Subscribers Profile
    get:
      operationId: MedAllergiesController_findAll
      parameters:
        - name: subscriberId
          required: true
          in: path
          description: Subscriber UUID
          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
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/GetMedicalAllergyDto'
                      currentPageNumber:
                        type: number
                        example: 0
                      recordsPerPage:
                        type: number
                        example: 0
                      totalRecords:
                        type: number
                        example: 0
                      totalPages:
                        type: number
                        example: 0
      security:
        - bearer: []
      summary: Lists medical allergies for a subscriber
      tags:
        - Subscribers Profile
  /subscriber-profile/{subscriberId}/medical-allergies/{allergyId}:
    get:
      operationId: MedAllergiesController_findById
      parameters:
        - name: subscriberId
          required: true
          in: path
          description: Subscriber UUID
          schema:
            type: string
        - name: allergyId
          required: true
          in: path
          description: Medical allergy UUID
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetMedicalAllergyDto'
      security:
        - bearer: []
      summary: Gets a medical allergy for a subscriber by id
      tags:
        - Subscribers Profile
    patch:
      operationId: MedAllergiesController_update
      parameters:
        - name: subscriberId
          required: true
          in: path
          description: Subscriber UUID
          schema:
            type: string
        - name: allergyId
          required: true
          in: path
          description: Medical allergy UUID
          schema:
            type: string
      requestBody:
        required: true
        description: >+

          In the preceding JSON:

          1. The 'op' property indicates the type of operation. 


          2. The 'path' property indicates the element to update. 


          3. The 'value' property provides the new value. - The *TYPE* of
          'value' depends on the *TYPE* of the element in 'path'




          *For Example: If TYPE of element in path: '/isProvider' is 'boolean' ,
          then The TYPE of Value should be 'boolean'*   




          op can be 'add' , 'replace' or 'remove'    


          1. add : Add a property or array element. For existing property: set
          value. 


          2. remove : Remove a property or array element. 


          3. replace : Same as remove followed by add at same location. 


        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/JsonPatchDocumentDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetMedicalAllergyDto'
      security:
        - bearer: []
      summary: Updates a medical allergy for a subscriber by id
      tags:
        - Subscribers Profile
  /subscriber-profile/{subscriberId}/medical-allergies/{allergyId}/archive:
    post:
      operationId: MedAllergiesController_archive
      parameters:
        - name: subscriberId
          required: true
          in: path
          description: Subscriber UUID
          schema:
            type: string
        - name: allergyId
          required: true
          in: path
          description: Medical allergy UUID
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Archives a medical allergy for a subscriber
      tags:
        - Subscribers Profile
  /subscriber-profile/{subscriberId}/medical-allergies/{allergyId}/restore:
    post:
      operationId: MedAllergiesController_restore
      parameters:
        - name: subscriberId
          required: true
          in: path
          description: Subscriber UUID
          schema:
            type: string
        - name: allergyId
          required: true
          in: path
          description: Medical allergy UUID
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Restores a medical allergy for a subscriber
      tags:
        - Subscribers Profile
  /api/subscribers/transfers/history-check:
    post:
      operationId: SubscriberTransferController_checkTransferHistory
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CheckTransferHistoryDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransferHistoryResultDto'
      security:
        - bearer: []
      summary: Check which subscribers from a list have transfer history.
      tags:
        - Subscriber Transfer
  /api/subscribers/{personId}/transfers:
    put:
      description: Permissions needed - subscribers.admin
      externalDocs:
        description: >-
          Visit the confluence story for more information - XREF | API
          SPECIFICATIONS
        url: >-
          https://ecg.atlassian.net/wiki/spaces/ADDI/pages/2194046994/XREF+API+SPECIFICATIONS#API---SINGLE-SUBSCRIBER-TRANSFER
      operationId: SubscriberTransferController_transferSubscriber
      parameters:
        - name: personId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TransferSubscriberDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: >-
        The purpose of this API to transfer subscriber from source organization
        to target organization.
      tags:
        - Subscriber Transfer
    get:
      description: Permissions needed - subscribers.admin
      externalDocs:
        description: >-
          Visit the confluence story for more information - XREF | API
          SPECIFICATIONS
        url: >-
          https://ecg.atlassian.net/wiki/spaces/ADDI/pages/2194046994/XREF+API+SPECIFICATIONS#API-SPECIFICATIONS
      operationId: SubscriberTransferController_list
      parameters:
        - name: personId
          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 : 25'
          schema:
            default: 25
            type: number
        - name: organizationId
          required: false
          in: query
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/SubscriberTransferDisplayModel'
                      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 the transfer subscriber history for
        subscriber.
      tags:
        - Subscriber Transfer
  /api/subscribers/{personId}/transfers/re-sync:
    post:
      description: Permissions needed - subscribers.admin
      externalDocs:
        description: >-
          Visit the confluence story for more information - XREF | API
          SPECIFICATIONS
        url: >-
          https://ecg.atlassian.net/wiki/spaces/ADDI/pages/2194046994/XREF+API+SPECIFICATIONS#API---SINGLE-SUBSCRIBER-TRANSFER-RE-SYNC
      operationId: SubscriberTransferController_transferSubscriberResync
      parameters:
        - name: personId
          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 re-sync the process of transfer subscriber
        from source organization to target organization.
      tags:
        - Subscriber Transfer
  /api/subscribers/{personId}/transfers/status:
    get:
      description: Permissions needed - subscribers.admin
      externalDocs:
        description: >-
          Visit the confluence story for more information - XREF | Single
          Transfer API Enhancements
        url: >-
          https://ecg.atlassian.net/wiki/spaces/ADDI/pages/2343665675/XREF+Single+Transfer+API+Enhancements#GET---API-to-retrieve-Subscriber-Transfer-Status
      operationId: SubscriberTransferController_transferSubscriberStatus
      parameters:
        - name: personId
          required: true
          in: path
          schema:
            example: fa3a17be-f93b-4f34-8ce5-7c12e4b2b1ea
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriberTransferStatusDisplayModel'
      security:
        - bearer: []
      summary: >-
        This API endpoint is designed to provide the status of a subscriber
        transfer operation identified by the personId
      tags:
        - Subscriber Transfer
  /api/subscriber-transfer-activities:
    get:
      description: Permissions needed - subscribers.admin
      externalDocs:
        description: >-
          Visit the confluence story for more information - XREF | API
          SPECIFICATIONS
        url: >-
          https://ecg.atlassian.net/wiki/spaces/ADDI/pages/2194046994/XREF+API+SPECIFICATIONS#API---SINGLE-SUBSCRIBER-TRANSFER-ACTIVITY
      operationId: SubscriberTransferActivityController_transferSubscriber
      parameters:
        - name: subscriberId
          required: false
          in: query
          schema:
            type: string
        - name: sourceOrgId
          required: false
          in: query
          schema:
            type: string
        - name: targetOrgId
          required: false
          in: query
          schema:
            type: string
        - name: subscriberOrganizationHistoryId
          required: false
          in: query
          schema:
            type: string
        - name: status
          required: false
          in: query
          schema:
            enum:
              - IN-PROGRESS
              - SUCCESS
              - FAILURE
            type: string
        - name: batchId
          required: false
          in: query
          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 : 25'
          schema:
            default: 25
            type: number
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: >-
                            #/components/schemas/SubscriberTransferActivityDisplayModel
                      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 Lists available Subscriber Transfer Activity.
      tags:
        - Subscriber Transfer
  /api/organizations/{organizationId}/batch-transfers:
    post:
      description: Permissions needed - subscribers.admin
      externalDocs:
        description: >-
          Visit the confluence story for more information - XREF | Batch
          Transfer API Specifications
        url: >-
          https://ecg.atlassian.net/wiki/spaces/ADDI/pages/2343665665/XREF+Batch+Transfer+API+Specifications#POST---API-to-add-Batch-Subscriber-Transfer
      operationId: BatchSubscriberTransferController_batchSubscriberTransfer
      parameters:
        - name: organizationId
          required: true
          in: path
          schema:
            example: 1d676572-47ed-4ba3-86b9-438e0aefce9d
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddBatchSubscriberTransferDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BatchSubscriberTransferDisplayModel'
      security:
        - bearer: []
      summary: >-
        This API endpoint facilitates the initiation of a batch subscriber
        transfer operation, allowing users to transfer multiple subscribers in a
        single request.
      tags:
        - Batch Subscriber Transfers
    get:
      description: Permissions needed - subscribers.read
      externalDocs:
        description: >-
          Visit the confluence story for more information - XREF | Batch
          Transfer API Specifications
        url: >-
          https://ecg.atlassian.net/wiki/spaces/ADDI/pages/2343665665/XREF+Batch+Transfer+API+Specifications#GET---Retrieve-Batch-Subscriber-Transfers-for-an-Organization
      operationId: BatchSubscriberTransferController_list
      parameters:
        - name: organizationId
          required: true
          in: path
          schema:
            example: 1d676572-47ed-4ba3-86b9-438e0aefce9d
            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 : 25'
          schema:
            default: 25
            type: number
        - name: batchId
          required: false
          in: query
          schema:
            example: d45d236f-3475-4ba4-9597-b8565d162963
            type: string
        - name: subscriberId
          required: false
          in: query
          schema:
            example: 576e5643-8b25-4a54-9e09-aeeb8c526cf4
            type: string
        - name: dateRangeType
          required: false
          in: query
          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
          schema:
            example: '2026-03-04T17:27:06.938Z'
            type: string
        - name: to
          required: false
          in: query
          schema:
            example: '2026-03-04T17:27:06.938Z'
            type: string
        - name: include
          required: false
          in: query
          schema:
            type: array
            items:
              type: string
              enum:
                - source-org
                - target-org
                - subscriber
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: >-
                            #/components/schemas/BatchSubscriberTransferDisplayModel
                      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 fetch information about batch subscriber
        transfers for a specific organization.
      tags:
        - Batch Subscriber Transfers
  /api/organizations/{organizationId}/batch-transfers/{batchId}/re-sync:
    post:
      description: Permissions needed - subscribers.admin
      externalDocs:
        description: >-
          Visit the confluence story for more information - XREF | Batch
          Transfer API Specifications
        url: >-
          https://ecg.atlassian.net/wiki/spaces/ADDI/pages/2343665665/XREF+Batch+Transfer+API+Specifications#POST---Re-sync-Specific-Batch-Subscriber-Transfer-Details
      operationId: BatchSubscriberTransferController_transferSubscriberBatchResync
      parameters:
        - name: organizationId
          required: true
          in: path
          schema:
            example: 1d676572-47ed-4ba3-86b9-438e0aefce9d
            type: string
        - name: batchId
          required: true
          in: path
          schema:
            example: 2e4912c2-2594-4d0c-bec7-25b31cec1da4
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: >-
        The purpose of this API to re-sync subscriber transfers with a status of
        failure for a specific batch within an organization.
      tags:
        - Batch Subscriber Transfers
  /api/organizations/{organizationId}/batch-transfers/{batchId}:
    get:
      description: Permissions needed - subscribers.read
      externalDocs:
        description: >-
          Visit the confluence story for more information - XREF | Batch
          Transfer API Specifications
        url: >-
          https://ecg.atlassian.net/wiki/spaces/ADDI/pages/2343665665/XREF+Batch+Transfer+API+Specifications#GET---Retrieve-Specific-Batch-Subscriber-Transfer-Details
      operationId: BatchSubscriberTransferController_getById
      parameters:
        - name: organizationId
          required: true
          in: path
          schema:
            example: 1d676572-47ed-4ba3-86b9-438e0aefce9d
            type: string
        - name: batchId
          required: true
          in: path
          schema:
            example: 2e4912c2-2594-4d0c-bec7-25b31cec1da4
            type: string
        - name: include
          required: false
          in: query
          schema:
            type: array
            items:
              type: string
              enum:
                - source-org
                - target-org
                - subscriber
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BatchSubscriberTransferDisplayModel'
      security:
        - bearer: []
      summary: >-
        The purpose of this API to retrieve details for a specific batch
        subscriber transfer within an organization.
      tags:
        - Batch Subscriber Transfers
  /api/organizations/{organizationId}/batch-transfers/{batchId}/status:
    get:
      description: Permissions needed - subscribers.admin
      externalDocs:
        description: >-
          Visit the confluence story for more information - XREF | Batch
          Transfer API Specifications
        url: >-
          https://ecg.atlassian.net/wiki/spaces/ADDI/pages/2343665665/XREF+Batch+Transfer+API+Specifications#GET---Retrieve-Batch-Transfer-Status
      operationId: BatchSubscriberTransferController_getBatchTransferStatus
      parameters:
        - name: organizationId
          required: true
          in: path
          schema:
            example: 1d676572-47ed-4ba3-86b9-438e0aefce9d
            type: string
        - name: batchId
          required: true
          in: path
          schema:
            example: 2e4912c2-2594-4d0c-bec7-25b31cec1da4
            type: string
        - name: include
          required: false
          in: query
          schema:
            type: array
            items:
              type: string
              enum:
                - subscriber
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BatchSubscriberTransferStatusDisplayModel'
      security:
        - bearer: []
      summary: >-
        The purpose of this API to provide the status details of a specific
        batch transfer within an organization. It allows you to include
        subscriber information in the response.
      tags:
        - Batch Subscriber Transfers
  /api/ecg-admins/audit-trails:
    get:
      operationId: EcgAdminController_getAuditTrailsForAll
      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: sort_by
          required: false
          in: query
          description: 'Default value : modifiedAt'
          schema:
            example: modifiedAt
            type: string
        - name: searchTerm
          required: false
          in: query
          description: 'Search By: action'
          schema:
            enum:
              - UPDATE
              - DELETE
              - INSERT
            type: string
        - name: dateRangeType
          required: false
          in: query
          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
          schema:
            format: date-time
            example: '2026-03-04T17:27:05.470Z'
            type: string
        - name: to
          required: false
          in: query
          schema:
            format: date-time
            example: '2026-03-04T17:27:05.470Z'
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/AuditTrailDisplayModel'
                      currentPageNumber:
                        type: number
                        example: 0
                      recordsPerPage:
                        type: number
                        example: 0
                      totalRecords:
                        type: number
                        example: 0
                      totalPages:
                        type: number
                        example: 0
      security:
        - bearer: []
      summary: Lists available ECG Admin Audit Trails for all the ECG Admins.
      tags:
        - EcgAdmins
  /api/ecg-admins/{personId}:
    patch:
      operationId: EcgAdminController_update
      parameters:
        - name: personId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        description: >+

          In the preceding JSON:

          1. The 'op' property indicates the type of operation. 


          2. The 'path' property indicates the element to update. 


          3. The 'value' property provides the new value. - The *TYPE* of
          'value' depends on the *TYPE* of the element in 'path'




          *For Example: If TYPE of element in path: '/isProvider' is 'boolean' ,
          then The TYPE of Value should be 'boolean'*   




          op can be 'add' , 'replace' or 'remove'    


          1. add : Add a property or array element. For existing property: set
          value. 


          2. remove : Remove a property or array element. 


          3. replace : Same as remove followed by add at same location. 


        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/JsonPatchDocumentDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EcgAdminDisplayModel'
      security:
        - bearer: []
      summary: Patches the ECG Admin information by updating the items.
      tags:
        - EcgAdmins
    get:
      operationId: EcgAdminController_getECGAdminById
      parameters:
        - name: personId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EcgAdminDisplayModel'
      security:
        - bearer: []
      summary: Get the ECG Admin by Id.
      tags:
        - EcgAdmins
  /api/ecg-admins:
    get:
      operationId: EcgAdminController_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 By: firstName, lastName, contactEmailAddress or
            fullName(firstName+lastName).
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/EcgAdminDisplayModel'
                      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 ECG Admin.
      tags:
        - EcgAdmins
    post:
      operationId: EcgAdminController_addECGAdmin
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddEcgAdminDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EcgAdminDisplayModel'
      security:
        - bearer: []
      summary: Adds the ECG Admin.
      tags:
        - EcgAdmins
  /api/ecg-admins/{personId}/activate:
    post:
      operationId: EcgAdminController_activate
      parameters:
        - name: personId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Activate the ECG Admin information.
      tags:
        - EcgAdmins
  /api/ecg-admins/{personId}/deactivate:
    post:
      operationId: EcgAdminController_deactivate
      parameters:
        - name: personId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Deactivate the ECG Admin information.
      tags:
        - EcgAdmins
  /api/ecg-admins/{personId}/audit-trails:
    get:
      operationId: EcgAdminController_getAllAuditTrailsById
      parameters:
        - name: personId
          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: sort_by
          required: false
          in: query
          description: 'Default value : modifiedAt'
          schema:
            example: modifiedAt
            type: string
        - name: searchTerm
          required: false
          in: query
          description: 'Search By: action'
          schema:
            enum:
              - UPDATE
              - DELETE
              - INSERT
            type: string
        - name: dateRangeType
          required: false
          in: query
          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
          schema:
            format: date-time
            example: '2026-03-04T17:27:05.470Z'
            type: string
        - name: to
          required: false
          in: query
          schema:
            format: date-time
            example: '2026-03-04T17:27:05.470Z'
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/AuditTrailDisplayModel'
                      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 ECG Admin Audit Trails for given ECG Admin Id.
      tags:
        - EcgAdmins
  /api/partners/audit-trails:
    get:
      operationId: PartnerController_getAAuditTrailsForAll
      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: sort_by
          required: false
          in: query
          description: 'Default value : modifiedAt'
          schema:
            example: modifiedAt
            type: string
        - name: searchTerm
          required: false
          in: query
          description: 'Search By: action'
          schema:
            enum:
              - UPDATE
              - DELETE
              - INSERT
            type: string
        - name: dateRangeType
          required: false
          in: query
          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
          schema:
            format: date-time
            example: '2026-03-04T17:27:05.470Z'
            type: string
        - name: to
          required: false
          in: query
          schema:
            format: date-time
            example: '2026-03-04T17:27:05.470Z'
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/AuditTrailDisplayModel'
                      currentPageNumber:
                        type: number
                        example: 0
                      recordsPerPage:
                        type: number
                        example: 0
                      totalRecords:
                        type: number
                        example: 0
                      totalPages:
                        type: number
                        example: 0
      security:
        - bearer: []
      summary: Lists available Partner Audit Trails for all partners.
      tags:
        - Partners (Deprecated)
  /api/partners:
    get:
      operationId: PartnerController_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: include
          required: false
          in: query
          description: >-
            For query include=parentPartner it returns partner with
            parentPartner ,if exists
          schema:
            enum:
              - subscribers
              - parentPartner
              - subsidiaries
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/PartnerDisplayModel'
                      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 Partners.
      tags:
        - Partners (Deprecated)
    post:
      operationId: PartnerController_addPartner
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddPartnerDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PartnerDisplayModel'
      security:
        - bearer: []
      summary: Add the Partner.
      tags:
        - Partners (Deprecated)
  /api/partners/{partnerId}:
    get:
      operationId: PartnerController_getPartnerByID
      parameters:
        - name: partnerId
          required: true
          in: path
          schema:
            type: string
        - name: include
          required: false
          in: query
          description: >-
            For query include=parentPartner it returns partner with
            parentPartner ,if exists
          schema:
            enum:
              - subscribers
              - parentPartner
              - subsidiaries
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PartnerDisplayModel'
      security:
        - bearer: []
      summary: Get the Partner by Id.
      tags:
        - Partners (Deprecated)
    patch:
      operationId: PartnerController_update
      parameters:
        - name: partnerId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        description: >+

          In the preceding JSON:

          1. The 'op' property indicates the type of operation. 


          2. The 'path' property indicates the element to update. 


          3. The 'value' property provides the new value. - The *TYPE* of
          'value' depends on the *TYPE* of the element in 'path'




          *For Example: If TYPE of element in path: '/isProvider' is 'boolean' ,
          then The TYPE of Value should be 'boolean'*   




          op can be 'add' , 'replace' or 'remove'    


          1. add : Add a property or array element. For existing property: set
          value. 


          2. remove : Remove a property or array element. 


          3. replace : Same as remove followed by add at same location. 


        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/JsonPatchDocumentDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PartnerDisplayModel'
      security:
        - bearer: []
      summary: Patches the Partner information by updating the items.
      tags:
        - Partners (Deprecated)
  /api/integrations/apptivo/partners-create:
    post:
      deprecated: true
      operationId: PartnerController_processCreatedPartnerWebhook
      parameters: []
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      summary: Partner Created Webhook API
      tags:
        - Partners (Deprecated)
  /api/integrations/apptivo/partners-delete:
    post:
      deprecated: true
      operationId: PartnerController_processDeletedPartnerWebhook
      parameters: []
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      summary: Partner Deleted Webhook API
      tags:
        - Partners (Deprecated)
  /api/integrations/apptivo/partners-update:
    post:
      deprecated: true
      operationId: PartnerController_processUpdatedPartnerWebhook
      parameters: []
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      summary: Partner Updated Webhook API
      tags:
        - Partners (Deprecated)
  /api/partners/{partnerId}/audit-trails:
    get:
      operationId: PartnerController_getAAuditTrailsForId
      parameters:
        - name: partnerId
          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: sort_by
          required: false
          in: query
          description: 'Default value : modifiedAt'
          schema:
            example: modifiedAt
            type: string
        - name: searchTerm
          required: false
          in: query
          description: 'Search By: action'
          schema:
            enum:
              - UPDATE
              - DELETE
              - INSERT
            type: string
        - name: dateRangeType
          required: false
          in: query
          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
          schema:
            format: date-time
            example: '2026-03-04T17:27:05.470Z'
            type: string
        - name: to
          required: false
          in: query
          schema:
            format: date-time
            example: '2026-03-04T17:27:05.470Z'
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/AuditTrailDisplayModel'
                      currentPageNumber:
                        type: number
                        example: 0
                      recordsPerPage:
                        type: number
                        example: 0
                      totalRecords:
                        type: number
                        example: 0
                      totalPages:
                        type: number
                        example: 0
      security:
        - bearer: []
      summary: Lists available Partner Audit Trails for given partnerId.
      tags:
        - Partners (Deprecated)
  /api/partners/{partnerId}/crm-sync:
    post:
      operationId: PartnerController_crmSync
      parameters:
        - name: partnerId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Syncs the Partner information in CRM
      tags:
        - Partners (Deprecated)
  /api/partners/sync/customerId:
    post:
      operationId: PartnerController_syncContactId
      parameters: []
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: >-
        Manages to Sync the customerId information from the Partner's
        legacy-identifier. Please Note this endpoint is for testing purpose only
        and will be removed shortly.
      tags:
        - Partners (Deprecated)
  /api/partners/reset-organization-customers:
    post:
      deprecated: true
      operationId: PartnerController_onBoardPartnersV2
      parameters: []
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: >-
        The script will scan the organization table and set the customer_id
        field to NULL wherever it is currently populated for OLD PARTNER TABLE
        ENTRIES ONLY.
      tags:
        - Partners (Deprecated)
  /api/partner-types/children/audit-trails:
    get:
      operationId: PartnerTypeController_getPartnerTypeRuleAuditTrailsForAll
      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: sort_by
          required: false
          in: query
          description: 'Default value : modifiedAt'
          schema:
            example: modifiedAt
            type: string
        - name: searchTerm
          required: false
          in: query
          description: 'Search By: action'
          schema:
            enum:
              - UPDATE
              - DELETE
              - INSERT
            type: string
        - name: dateRangeType
          required: false
          in: query
          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
          schema:
            format: date-time
            example: '2026-03-04T17:27:05.470Z'
            type: string
        - name: to
          required: false
          in: query
          schema:
            format: date-time
            example: '2026-03-04T17:27:05.470Z'
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/AuditTrailDisplayModel'
                      currentPageNumber:
                        type: number
                        example: 0
                      recordsPerPage:
                        type: number
                        example: 0
                      totalRecords:
                        type: number
                        example: 0
                      totalPages:
                        type: number
                        example: 0
      security:
        - bearer: []
      summary: Lists available Partner Type Rule Audit Trails for all.
      tags:
        - PartnerTypes (Deprecated)
  /api/partner-types/direct-commissions/audit-trails:
    get:
      operationId: PartnerTypeController_getCommissionsAuditTrailsForAll
      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: sort_by
          required: false
          in: query
          description: 'Default value : modifiedAt'
          schema:
            example: modifiedAt
            type: string
        - name: searchTerm
          required: false
          in: query
          description: 'Search By: action'
          schema:
            enum:
              - UPDATE
              - DELETE
              - INSERT
            type: string
        - name: dateRangeType
          required: false
          in: query
          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
          schema:
            format: date-time
            example: '2026-03-04T17:27:05.470Z'
            type: string
        - name: to
          required: false
          in: query
          schema:
            format: date-time
            example: '2026-03-04T17:27:05.470Z'
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/AuditTrailDisplayModel'
                      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 Partner Direct Commissions Audit Trails for all.
      tags:
        - PartnerTypes (Deprecated)
  /api/partner-types/indirect-commissions/audit-trails:
    get:
      operationId: PartnerTypeController_getAuditTrailsForAllCommission
      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: sort_by
          required: false
          in: query
          description: 'Default value : modifiedAt'
          schema:
            example: modifiedAt
            type: string
        - name: searchTerm
          required: false
          in: query
          description: 'Search By: action'
          schema:
            enum:
              - UPDATE
              - DELETE
              - INSERT
            type: string
        - name: dateRangeType
          required: false
          in: query
          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
          schema:
            format: date-time
            example: '2026-03-04T17:27:05.470Z'
            type: string
        - name: to
          required: false
          in: query
          schema:
            format: date-time
            example: '2026-03-04T17:27:05.470Z'
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/AuditTrailDisplayModel'
                      currentPageNumber:
                        type: number
                        example: 0
                      recordsPerPage:
                        type: number
                        example: 0
                      totalRecords:
                        type: number
                        example: 0
                      totalPages:
                        type: number
                        example: 0
      security:
        - bearer: []
      summary: Lists Partner Indirect Commissions Audit Trails for all.
      tags:
        - PartnerTypes (Deprecated)
  /api/partner-types/audit-trails:
    get:
      operationId: PartnerTypeController_getAuditTrailsForAll
      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: sort_by
          required: false
          in: query
          description: 'Default value : modifiedAt'
          schema:
            example: modifiedAt
            type: string
        - name: searchTerm
          required: false
          in: query
          description: 'Search By: action'
          schema:
            enum:
              - UPDATE
              - DELETE
              - INSERT
            type: string
        - name: dateRangeType
          required: false
          in: query
          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
          schema:
            format: date-time
            example: '2026-03-04T17:27:05.470Z'
            type: string
        - name: to
          required: false
          in: query
          schema:
            format: date-time
            example: '2026-03-04T17:27:05.470Z'
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/AuditTrailDisplayModel'
                      currentPageNumber:
                        type: number
                        example: 0
                      recordsPerPage:
                        type: number
                        example: 0
                      totalRecords:
                        type: number
                        example: 0
                      totalPages:
                        type: number
                        example: 0
      security:
        - bearer: []
      summary: Lists available Partner Type Audit Trails for all the Partner Types.
      tags:
        - PartnerTypes (Deprecated)
  /api/partner-types:
    post:
      operationId: PartnerTypeController_addPartnerType
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddPartnerTypeDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PartnerTypeDisplayModel'
      security:
        - bearer: []
      summary: Adds the Partner type.
      tags:
        - PartnerTypes (Deprecated)
    get:
      operationId: PartnerTypeController_getAllPartnerType
      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: name, code or description'
          schema:
            type: string
        - name: sort_by
          required: false
          in: query
          description: 'Default value : id'
          schema:
            example: id
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/PartnerTypeDisplayModel'
                      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 Partner Types.
      tags:
        - PartnerTypes (Deprecated)
  /api/partner-types/{partnerTypeId}:
    get:
      operationId: PartnerTypeController_getPartnerType
      parameters:
        - name: partnerTypeId
          required: true
          in: path
          schema:
            type: string
        - name: include
          required: false
          in: query
          description: >-
            For query include=successLadderBonus it returns partner-type with
            successLadderBonus,if exists
          schema:
            enum:
              - parent
              - children
              - successLadderBonus
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PartnerTypeDisplayModel'
      security:
        - bearer: []
      summary: Gets the Partner Type Information.
      tags:
        - PartnerTypes (Deprecated)
    delete:
      operationId: PartnerTypeController_deletePartnerType
      parameters:
        - name: partnerTypeId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Deletes the Partner Type Information.
      tags:
        - PartnerTypes (Deprecated)
    patch:
      operationId: PartnerTypeController_patchPartnerType
      parameters:
        - name: partnerTypeId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        description: >+

          In the preceding JSON:

          1. The 'op' property indicates the type of operation. 


          2. The 'path' property indicates the element to update. 


          3. The 'value' property provides the new value. - The *TYPE* of
          'value' depends on the *TYPE* of the element in 'path'




          *For Example: If TYPE of element in path: '/isProvider' is 'boolean' ,
          then The TYPE of Value should be 'boolean'*   




          op can be 'add' , 'replace' or 'remove'    


          1. add : Add a property or array element. For existing property: set
          value. 


          2. remove : Remove a property or array element. 


          3. replace : Same as remove followed by add at same location. 


        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/JsonPatchDocumentDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PartnerTypeDisplayModel'
      security:
        - bearer: []
      summary: >-
        Patches the Partner Type information by updating the items they were
        provided.
      tags:
        - PartnerTypes (Deprecated)
  /api/partner-types/{partnerTypeId}/activate:
    post:
      operationId: PartnerTypeController_activatePartnerType
      parameters:
        - name: partnerTypeId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Activates the Partner Type information.
      tags:
        - PartnerTypes (Deprecated)
  /api/partner-types/{partnerTypeId}/deactivate:
    post:
      operationId: PartnerTypeController_deactivatePartnerType
      parameters:
        - name: partnerTypeId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Deactivates the Partner Type information.
      tags:
        - PartnerTypes (Deprecated)
  /api/partner-types/{partnerTypeId}/children:
    get:
      operationId: PartnerTypeController_getPartnerTypeChildren
      parameters:
        - name: partnerTypeId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/PartnerTypeDisplayModel'
                      totalRecords:
                        type: number
                        example: 0
      security:
        - bearer: []
      summary: Lists all the available Partner Type Children.
      tags:
        - PartnerTypes (Deprecated)
    post:
      operationId: PartnerTypeController_addPartnerTypeChildren
      parameters:
        - name: partnerTypeId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddChildPartnerTypeIdsDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/PartnerTypeDisplayModel'
                      totalRecords:
                        type: number
                        example: 0
      security:
        - bearer: []
      summary: Adds the Partner Type Children.
      tags:
        - PartnerTypes (Deprecated)
  /api/partner-types/{partnerTypeId}/children/{childrenId}:
    delete:
      operationId: PartnerTypeController_deletePartnerTypeRule
      parameters:
        - name: partnerTypeId
          required: true
          in: path
          schema:
            type: string
        - name: childrenId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Deletes the Partner Type Child.
      tags:
        - PartnerTypes (Deprecated)
  /api/partner-types/{partnerTypeId}/children/{childrenId}/indirect-commissions:
    get:
      operationId: PartnerTypeController_getIndirectCommission
      parameters:
        - name: partnerTypeId
          required: true
          in: path
          schema:
            type: string
        - name: childrenId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PartnerIndirectCommissionDisplayModel'
      security:
        - bearer: []
      summary: Gets the Partner Type Indirect Commissions
      tags:
        - PartnerTypes (Deprecated)
  /api/partner-types/{partnerTypeId}/direct-commissions/{commissionId}:
    get:
      operationId: PartnerTypeController_getPartnerTypeCommission
      parameters:
        - name: partnerTypeId
          required: true
          in: path
          schema:
            type: string
        - name: commissionId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PartnerCommissionDisplayModel'
      security:
        - bearer: []
      summary: Gets the Partner Type Commission.
      tags:
        - PartnerTypes (Deprecated)
    patch:
      operationId: PartnerTypeController_updatePartnerTypeCommission
      parameters:
        - name: partnerTypeId
          required: true
          in: path
          schema:
            type: string
        - name: commissionId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        description: >+

          In the preceding JSON:

          1. The 'op' property indicates the type of operation. 


          2. The 'path' property indicates the element to update. 


          3. The 'value' property provides the new value. - The *TYPE* of
          'value' depends on the *TYPE* of the element in 'path'




          *For Example: If TYPE of element in path: '/isProvider' is 'boolean' ,
          then The TYPE of Value should be 'boolean'*   




          op can be 'add' , 'replace' or 'remove'    


          1. add : Add a property or array element. For existing property: set
          value. 


          2. remove : Remove a property or array element. 


          3. replace : Same as remove followed by add at same location. 


        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/JsonPatchDocumentDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PartnerCommissionDisplayModel'
      security:
        - bearer: []
      summary: >-
        Patches the Partner Type Commission information by updating the items
        they were provided.
      tags:
        - PartnerTypes (Deprecated)
    delete:
      operationId: PartnerTypeController_deletePartnerTypeCommission
      parameters:
        - name: commissionId
          required: true
          in: path
          schema:
            type: string
        - name: partnerTypeId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Deletes the Partner Type Commission information.
      tags:
        - PartnerTypes (Deprecated)
  /api/partner-types/{partnerTypeId}/direct-commissions:
    post:
      operationId: PartnerTypeController_addPartnerTypeCommission
      parameters:
        - name: partnerTypeId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddPartnerCommissionDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PartnerCommissionDisplayModel'
      security:
        - bearer: []
      summary: Adds the Partner Type Commission.
      tags:
        - PartnerTypes (Deprecated)
    get:
      operationId: PartnerTypeController_getPartnerTypeDirectCommissions
      parameters:
        - name: partnerTypeId
          required: true
          in: path
          schema:
            type: string
        - name: productId
          required: false
          in: query
          description: For filtering all the Direct Commissions of a Particular Product
          schema: {}
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/PartnerCommissionDisplayModel'
                      totalRecords:
                        type: number
                        example: 0
      security:
        - bearer: []
      summary: Lists all the available Partner Type Direct Commissions
      tags:
        - PartnerTypes (Deprecated)
  /api/partner-types/{partnerTypeId}/indirect-commissions:
    get:
      operationId: PartnerTypeController_getPartnerTypeIndirectCommissions
      parameters:
        - name: partnerTypeId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: >-
                            #/components/schemas/PartnerIndirectCommissionDisplayModel
                      totalRecords:
                        type: number
                        example: 0
      security:
        - bearer: []
      summary: Lists all the available Partner Type Indirect Commissions
      tags:
        - PartnerTypes (Deprecated)
  /api/partner-types/{partnerTypeId}/audit-trails:
    get:
      operationId: PartnerTypeController_getPartnerTypeAuditTrailsById
      parameters:
        - name: partnerTypeId
          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: sort_by
          required: false
          in: query
          description: 'Default value : modifiedAt'
          schema:
            example: modifiedAt
            type: string
        - name: searchTerm
          required: false
          in: query
          description: 'Search By: action'
          schema:
            enum:
              - UPDATE
              - DELETE
              - INSERT
            type: string
        - name: dateRangeType
          required: false
          in: query
          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
          schema:
            format: date-time
            example: '2026-03-04T17:27:05.470Z'
            type: string
        - name: to
          required: false
          in: query
          schema:
            format: date-time
            example: '2026-03-04T17:27:05.470Z'
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/AuditTrailDisplayModel'
                      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 Partner Type Audit Trails for given Partner Type
        Id.
      tags:
        - PartnerTypes (Deprecated)
  /api/partner-types/{partnerTypeId}/children/audit-trails:
    get:
      operationId: PartnerTypeController_getPartnerTypeRuleAuditTrails
      parameters:
        - name: partnerTypeId
          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: sort_by
          required: false
          in: query
          description: 'Default value : modifiedAt'
          schema:
            example: modifiedAt
            type: string
        - name: searchTerm
          required: false
          in: query
          description: 'Search By: action'
          schema:
            enum:
              - UPDATE
              - DELETE
              - INSERT
            type: string
        - name: dateRangeType
          required: false
          in: query
          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
          schema:
            format: date-time
            example: '2026-03-04T17:27:05.470Z'
            type: string
        - name: to
          required: false
          in: query
          schema:
            format: date-time
            example: '2026-03-04T17:27:05.470Z'
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/AuditTrailDisplayModel'
                      currentPageNumber:
                        type: number
                        example: 0
                      recordsPerPage:
                        type: number
                        example: 0
                      totalRecords:
                        type: number
                        example: 0
                      totalPages:
                        type: number
                        example: 0
      security:
        - bearer: []
      summary: Lists available Partner Type Rule Audit Trails for given Id.
      tags:
        - PartnerTypes (Deprecated)
  /api/partner-types/{partnerTypeId}/direct-commissions/{commissionId}/audit-trails:
    get:
      operationId: PartnerTypeController_getCommissionsAuditTrailsForId
      parameters:
        - name: partnerTypeId
          required: true
          in: path
          schema:
            type: string
        - name: commissionId
          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: sort_by
          required: false
          in: query
          description: 'Default value : modifiedAt'
          schema:
            example: modifiedAt
            type: string
        - name: searchTerm
          required: false
          in: query
          description: 'Search By: action'
          schema:
            enum:
              - UPDATE
              - DELETE
              - INSERT
            type: string
        - name: dateRangeType
          required: false
          in: query
          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
          schema:
            format: date-time
            example: '2026-03-04T17:27:05.470Z'
            type: string
        - name: to
          required: false
          in: query
          schema:
            format: date-time
            example: '2026-03-04T17:27:05.470Z'
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/AuditTrailDisplayModel'
                      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 Partner Direct Commissions Audit Trails for
        given Id.
      tags:
        - PartnerTypes (Deprecated)
  /api/partner-types/{partnerTypeId}/indirect-commissions/{commissionId}/audit-trails:
    get:
      operationId: PartnerTypeController_getAuditTrailsForId
      parameters:
        - name: partnerTypeId
          required: true
          in: path
          schema:
            type: string
        - name: commissionId
          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: sort_by
          required: false
          in: query
          description: 'Default value : modifiedAt'
          schema:
            example: modifiedAt
            type: string
        - name: searchTerm
          required: false
          in: query
          description: 'Search By: action'
          schema:
            enum:
              - UPDATE
              - DELETE
              - INSERT
            type: string
        - name: dateRangeType
          required: false
          in: query
          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
          schema:
            format: date-time
            example: '2026-03-04T17:27:05.470Z'
            type: string
        - name: to
          required: false
          in: query
          schema:
            format: date-time
            example: '2026-03-04T17:27:05.470Z'
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/AuditTrailDisplayModel'
                      currentPageNumber:
                        type: number
                        example: 0
                      recordsPerPage:
                        type: number
                        example: 0
                      totalRecords:
                        type: number
                        example: 0
                      totalPages:
                        type: number
                        example: 0
      security:
        - bearer: []
      summary: Lists Partner Indirect Commissions Audit Trails for given Id
      tags:
        - PartnerTypes (Deprecated)
  /api/partner-types/{partnerTypeId}/success-ladder-bonuses:
    post:
      operationId: PartnerTypeController_assign
      parameters:
        - name: partnerTypeId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AssignSlbDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PartnerTypeDisplayModel'
      security:
        - bearer: []
      summary: Assign Success Ladder Bonus
      tags:
        - PartnerTypes (Deprecated)
    get:
      operationId: PartnerTypeController_getSLB
      parameters:
        - name: partnerTypeId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessLadderBonusDisplayModel'
      security:
        - bearer: []
      summary: Gets the Success Ladder Bonus information for a given Partner Type.
      tags:
        - PartnerTypes (Deprecated)
    patch:
      operationId: PartnerTypeController_patchSLB
      parameters:
        - name: partnerTypeId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        description: >+

          In the preceding JSON:

          1. The 'op' property indicates the type of operation. 


          2. The 'path' property indicates the element to update. 


          3. The 'value' property provides the new value. - The *TYPE* of
          'value' depends on the *TYPE* of the element in 'path'




          *For Example: If TYPE of element in path: '/isProvider' is 'boolean' ,
          then The TYPE of Value should be 'boolean'*   




          op can be 'add' , 'replace' or 'remove'    


          1. add : Add a property or array element. For existing property: set
          value. 


          2. remove : Remove a property or array element. 


          3. replace : Same as remove followed by add at same location. 


        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: Patch for the Success Ladder Bonus information from a Partner Type
      tags:
        - PartnerTypes (Deprecated)
  /api/partner-types/{partnerTypeId}/hco-commissions:
    post:
      operationId: PartnerTypeController_addHcoCommission
      parameters:
        - name: partnerTypeId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddHcoCommissionDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PartnerTypeDisplayModel'
      security:
        - bearer: []
      summary: Adds HCO Commission for the Partner type.
      tags:
        - PartnerTypes (Deprecated)
    patch:
      operationId: PartnerTypeController_patchHcoCommission
      parameters:
        - name: partnerTypeId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        description: >+

          In the preceding JSON:

          1. The 'op' property indicates the type of operation. 


          2. The 'path' property indicates the element to update. 


          3. The 'value' property provides the new value. - The *TYPE* of
          'value' depends on the *TYPE* of the element in 'path'




          *For Example: If TYPE of element in path: '/isProvider' is 'boolean' ,
          then The TYPE of Value should be 'boolean'*   




          op can be 'add' , 'replace' or 'remove'    


          1. add : Add a property or array element. For existing property: set
          value. 


          2. remove : Remove a property or array element. 


          3. replace : Same as remove followed by add at same location. 


        content:
          application/json:
            schema:
              $ref: '#/components/schemas/JsonPatchDocumentDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PartnerTypeDisplayModel'
      security:
        - bearer: []
      summary: >-
        Patches HCO Commission information by updating the items they were
        provided.
      tags:
        - PartnerTypes (Deprecated)
    delete:
      operationId: PartnerTypeController_deleteHcoCommission
      parameters:
        - name: partnerTypeId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Deletes HCO Commission information for the Partner type.
      tags:
        - PartnerTypes (Deprecated)
  /api/success-ladder-bonuses/audit-trails:
    get:
      operationId: SuccessLadderBonusController_getAuditTrailsForAll
      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: sort_by
          required: false
          in: query
          description: 'Default value : modifiedAt'
          schema:
            example: modifiedAt
            type: string
        - name: searchTerm
          required: false
          in: query
          description: 'Search By: action'
          schema:
            enum:
              - UPDATE
              - DELETE
              - INSERT
            type: string
        - name: dateRangeType
          required: false
          in: query
          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
          schema:
            format: date-time
            example: '2026-03-04T17:27:05.470Z'
            type: string
        - name: to
          required: false
          in: query
          schema:
            format: date-time
            example: '2026-03-04T17:27:05.470Z'
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/AuditTrailDisplayModel'
                      currentPageNumber:
                        type: number
                        example: 0
                      recordsPerPage:
                        type: number
                        example: 0
                      totalRecords:
                        type: number
                        example: 0
                      totalPages:
                        type: number
                        example: 0
      security:
        - bearer: []
      summary: Lists available Success Ladder Bonus Audit Trails for all.
      tags:
        - SuccessLadderBonuses (Deprecated)
  /api/success-ladder-bonuses:
    post:
      operationId: SuccessLadderBonusController_addSuccessLadderBonus
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddSuccessLadderBonusDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessLadderBonusDisplayModel'
      security:
        - bearer: []
      summary: Adds Success Ladder Information.
      tags:
        - SuccessLadderBonuses (Deprecated)
    get:
      operationId: SuccessLadderBonusController_getAll
      parameters:
        - name: order_by
          required: false
          in: query
          description: 'Default value : DESC'
          schema:
            enum:
              - ASC
              - DESC
            type: string
        - name: searchTerm
          required: false
          in: query
          description: 'Search By: title or description'
          schema: {}
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SuccessLadderBonusDisplayModel'
      security:
        - bearer: []
      summary: Lists all the available Success Ladder Bonuses.
      tags:
        - SuccessLadderBonuses (Deprecated)
  /api/success-ladder-bonuses/{successLadderBonusId}:
    patch:
      operationId: SuccessLadderBonusController_update
      parameters:
        - name: successLadderBonusId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        description: >+

          In the preceding JSON:

          1. The 'op' property indicates the type of operation. 


          2. The 'path' property indicates the element to update. 


          3. The 'value' property provides the new value. - The *TYPE* of
          'value' depends on the *TYPE* of the element in 'path'




          *For Example: If TYPE of element in path: '/isProvider' is 'boolean' ,
          then The TYPE of Value should be 'boolean'*   




          op can be 'add' , 'replace' or 'remove'    


          1. add : Add a property or array element. For existing property: set
          value. 


          2. remove : Remove a property or array element. 


          3. replace : Same as remove followed by add at same location. 


        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/JsonPatchDocumentDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessLadderBonusDisplayModel'
      security:
        - bearer: []
      summary: >-
        Patches the Success Ladder Bonus information by updating the items they
        were provided.
      tags:
        - SuccessLadderBonuses (Deprecated)
  /api/success-ladder-bonuses/{successLadderBonusId}/audit-trails:
    get:
      operationId: SuccessLadderBonusController_getAuditTrailsForId
      parameters:
        - name: successLadderBonusId
          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: sort_by
          required: false
          in: query
          description: 'Default value : modifiedAt'
          schema:
            example: modifiedAt
            type: string
        - name: searchTerm
          required: false
          in: query
          description: 'Search By: action'
          schema:
            enum:
              - UPDATE
              - DELETE
              - INSERT
            type: string
        - name: dateRangeType
          required: false
          in: query
          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
          schema:
            format: date-time
            example: '2026-03-04T17:27:05.470Z'
            type: string
        - name: to
          required: false
          in: query
          schema:
            format: date-time
            example: '2026-03-04T17:27:05.470Z'
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/AuditTrailDisplayModel'
                      currentPageNumber:
                        type: number
                        example: 0
                      recordsPerPage:
                        type: number
                        example: 0
                      totalRecords:
                        type: number
                        example: 0
                      totalPages:
                        type: number
                        example: 0
      security:
        - bearer: []
      summary: Lists available Success Ladder Bonus Audit Trails for given Id
      tags:
        - SuccessLadderBonuses (Deprecated)
  /api/policy-groups/audit-trails:
    get:
      operationId: PolicyGroupsController_getAuditTrailsForAll
      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: sort_by
          required: false
          in: query
          description: 'Default value : modifiedAt'
          schema:
            example: modifiedAt
            type: string
        - name: searchTerm
          required: false
          in: query
          description: 'Search By: action'
          schema:
            enum:
              - UPDATE
              - DELETE
              - INSERT
            type: string
        - name: dateRangeType
          required: false
          in: query
          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
          schema:
            format: date-time
            example: '2026-03-04T17:27:05.470Z'
            type: string
        - name: to
          required: false
          in: query
          schema:
            format: date-time
            example: '2026-03-04T17:27:05.470Z'
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/AuditTrailDisplayModel'
                      currentPageNumber:
                        type: number
                        example: 0
                      recordsPerPage:
                        type: number
                        example: 0
                      totalRecords:
                        type: number
                        example: 0
                      totalPages:
                        type: number
                        example: 0
      security:
        - bearer: []
      summary: Lists available Policy Group Audit Trails for all the Policy Groups.
      tags:
        - PolicyGroups
  /api/policy-groups/{policyGroupId}:
    patch:
      operationId: PolicyGroupsController_update
      parameters:
        - name: policyGroupId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        description: >+

          In the preceding JSON:

          1. The 'op' property indicates the type of operation. 


          2. The 'path' property indicates the element to update. 


          3. The 'value' property provides the new value. - The *TYPE* of
          'value' depends on the *TYPE* of the element in 'path'




          *For Example: If TYPE of element in path: '/isProvider' is 'boolean' ,
          then The TYPE of Value should be 'boolean'*   




          op can be 'add' , 'replace' or 'remove'    


          1. add : Add a property or array element. For existing property: set
          value. 


          2. remove : Remove a property or array element. 


          3. replace : Same as remove followed by add at same location. 


        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/JsonPatchDocumentDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PolicyGroupDisplayModel'
      security:
        - bearer: []
      summary: Patches the Policy Group information by updating the items.
      tags:
        - PolicyGroups
    get:
      operationId: PolicyGroupsController_getById
      parameters:
        - name: policyGroupId
          required: true
          in: path
          schema:
            type: string
        - name: include
          required: false
          in: query
          description: For query include=policies it returns policy-group with policies
          schema:
            enum:
              - policies
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PolicyGroupDisplayModel'
      security:
        - bearer: []
      summary: Get the Policy Group by Id.
      tags:
        - PolicyGroups
    delete:
      operationId: PolicyGroupsController_deleteById
      parameters:
        - name: policyGroupId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Deletes the Policy Group information.
      tags:
        - PolicyGroups
  /api/policy-groups:
    get:
      operationId: PolicyGroupsController_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 By: title, code or description'
          schema:
            type: string
        - name: include
          required: false
          in: query
          description: For query include=policies it returns policy-group with policies
          schema:
            enum:
              - policies
            type: string
        - name: sort_by
          required: false
          in: query
          description: 'Default value : id'
          schema:
            example: id
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/PolicyGroupDisplayModel'
                      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 Policy Group.
      tags:
        - PolicyGroups
    post:
      operationId: PolicyGroupsController_add
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddPolicyGroupDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PolicyGroupDisplayModel'
      security:
        - bearer: []
      summary: Adds the Policy Group.
      tags:
        - PolicyGroups
  /api/policy-groups/{policyGroupId}/policies:
    delete:
      operationId: PolicyGroupsController_deletePolicies
      parameters:
        - name: policyGroupId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddPolicyIdsDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Deletes Policies from Policy Group.
      tags:
        - PolicyGroups
    post:
      operationId: PolicyGroupsController_addPolicies
      parameters:
        - name: policyGroupId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddPolicyIdsDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PolicyGroupDisplayModel'
      security:
        - bearer: []
      summary: Adds Policies to Policy Group.
      tags:
        - PolicyGroups
  /api/policy-groups/{policyGroupId}/archive:
    post:
      operationId: PolicyGroupsController_archive
      parameters:
        - name: policyGroupId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Archives the Policy Group information.
      tags:
        - PolicyGroups
  /api/policy-groups/{policyGroupId}/restore:
    post:
      operationId: PolicyGroupsController_restore
      parameters:
        - name: policyGroupId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Restores the Policy Group information.
      tags:
        - PolicyGroups
  /api/policy-groups/{policyGroupId}/audit-trails:
    get:
      operationId: PolicyGroupsController_getAllAuditTrailsById
      parameters:
        - name: policyGroupId
          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: sort_by
          required: false
          in: query
          description: 'Default value : modifiedAt'
          schema:
            example: modifiedAt
            type: string
        - name: searchTerm
          required: false
          in: query
          description: 'Search By: action'
          schema:
            enum:
              - UPDATE
              - DELETE
              - INSERT
            type: string
        - name: dateRangeType
          required: false
          in: query
          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
          schema:
            format: date-time
            example: '2026-03-04T17:27:05.470Z'
            type: string
        - name: to
          required: false
          in: query
          schema:
            format: date-time
            example: '2026-03-04T17:27:05.470Z'
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/AuditTrailDisplayModel'
                      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 Policy Group Audit Trails for given Policy Group
        Id.
      tags:
        - PolicyGroups
  /api/organizations/{organizationId}/anelto-credentials:
    post:
      operationId: AneltoCredentialsController_addCredentials
      parameters:
        - name: organizationId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddAneltoCredentialDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AneltoCredentialDisplayModel'
      security:
        - bearer: []
      summary: Adds the Anelto Credentials for an Organization.
      tags:
        - Anelto Credentials
    get:
      operationId: AneltoCredentialsController_getCredentials
      parameters:
        - name: organizationId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AneltoCredentialDisplayModel'
      security:
        - bearer: []
      summary: Gets the Anelto Credentials for an Organization.
      tags:
        - Anelto Credentials
    patch:
      operationId: AneltoCredentialsController_updateCredentials
      parameters:
        - name: organizationId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateAneltoCredentialDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AneltoCredentialDisplayModel'
      security:
        - bearer: []
      summary: Patches the Anelto Credentials for an Organization.
      tags:
        - Anelto Credentials
  /api/anelto-credentials/re-cache:
    post:
      description: Permissions needed - organizations.admin
      externalDocs:
        description: >-
          Visit the confluence story for more information - PART | ANELTO
          CREDENTIALS TECHNICAL SPECIFICATIONS 
        url: https://ecg.atlassian.net/wiki/x/BABdvQ
      operationId: AneltoCredentialsController_reCache
      parameters: []
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: The purpose of this API is Re-Cache the Anelto Credentials in Redis
      tags:
        - Anelto Credentials
  /api/subscriber-devices:
    get:
      operationId: SubscriberDevicesController_getDevice
      parameters:
        - name: provisioningAttribute
          required: true
          in: query
          schema:
            type: string
        - name: provisioningAttributeValue
          required: true
          in: query
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/DeviceLogDisplayModel'
                      totalRecords:
                        type: number
                        example: 0
      security:
        - bearer: []
      summary: Gets device logs by product type or provisioning attribute
      tags:
        - Subscriber Devices
  /api/subscriber-devices/{deviceId}/retire:
    patch:
      operationId: SubscriberDevicesController_retireDevice
      parameters:
        - name: deviceId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeviceLogDisplayModel'
      security:
        - bearer: []
      summary: Retires a device
      tags:
        - Subscriber Devices
  /api/subscriber-devices/subscriber:
    get:
      operationId: SubscriberDevicesController_getSubscriberByDevice
      parameters:
        - name: include
          required: false
          in: query
          schema:
            type: array
            items:
              type: string
              enum:
                - organization
        - name: provisioningAttribute
          required: true
          in: query
          schema:
            type: string
        - name: provisioningAttributeValue
          required: true
          in: query
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/SubscriberByIdDisplayModel'
                      totalRecords:
                        type: number
                        example: 0
      security:
        - bearer: []
      summary: >-
        Gets subscribers associated with devices matching the provided
        provisioning attribute or product type
      tags:
        - Subscriber Devices
  /api/organizations/{organizationId}/client-credentials:
    post:
      operationId: ClientCredentialsController_addClientCredentials
      parameters:
        - name: organizationId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddClientCredentialDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AppClientCredentialDisplayModel'
      security:
        - bearer: []
      summary: Adds the Client Credentials for an Organization.
      tags:
        - Client Credentials
    get:
      operationId: ClientCredentialsController_listCredentials
      parameters:
        - name: organizationId
          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: searchTerm
          required: false
          in: query
          description: 'Search By: firstName, lastName or contactEmailAddress'
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/AppClientCredentialDisplayModel'
                      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 Client Credentials Information for an Organization.
      tags:
        - Client Credentials
  /api/organizations/{organizationId}/client-credentials/{clientId}:
    get:
      operationId: ClientCredentialsController_getClientCredentials
      parameters:
        - name: organizationId
          required: true
          in: path
          schema:
            example: uuid
            type: string
        - name: clientId
          required: true
          in: path
          schema:
            example: string
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AppClientSecretDisplayModel'
      security:
        - bearer: []
      summary: Gets the Client Credentials Information for an Organization.
      tags:
        - Client Credentials
    delete:
      operationId: ClientCredentialsController_deleteClientCredentials
      parameters:
        - name: organizationId
          required: true
          in: path
          schema:
            example: uuid
            type: string
        - name: clientId
          required: true
          in: path
          schema:
            example: string
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Deletes the Client Credentials Information for an Organization.
      tags:
        - Client Credentials
  /api/organizations/{organizationId}/client-credentials/{clientId}/re-sync:
    post:
      operationId: ClientCredentialsController_reSyncClientCredentials
      parameters:
        - name: organizationId
          required: true
          in: path
          schema:
            example: uuid
            type: string
        - name: clientId
          required: true
          in: path
          schema:
            example: string
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: ReSyncs the Client Credentials Information for an Organization in ACM.
      tags:
        - Client Credentials
  /api/organizations/{organizationId}/client-credentials/{clientId}/archive:
    post:
      operationId: ClientCredentialsController_archiveCC
      parameters:
        - name: organizationId
          required: true
          in: path
          schema:
            example: uuid
            type: string
        - name: clientId
          required: true
          in: path
          schema:
            example: string
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Archives the Client Credentials information.
      tags:
        - Client Credentials
  /api/organizations/{organizationId}/client-credentials/{clientId}/restore:
    post:
      operationId: ClientCredentialsController_restoreCC
      parameters:
        - name: organizationId
          required: true
          in: path
          schema:
            example: uuid
            type: string
        - name: clientId
          required: true
          in: path
          schema:
            example: string
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Restores the Client Credential information.
      tags:
        - Client Credentials
  /api/organizations/{organizationId}/api-keys:
    get:
      operationId: ApiKeyCredentialsController_listCredentials
      parameters:
        - name: organizationId
          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: searchTerm
          required: false
          in: query
          description: 'Search By: firstName, lastName or contactEmailAddress'
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/ApiKeyCredentialDisplayModel'
                      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 Api Keys Information for an Organization.
      tags:
        - Client Credentials
    post:
      operationId: ApiKeyCredentialsController_addApiKeyCredentials
      parameters:
        - name: organizationId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddApiKeyCredentialDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiKeyCredentialDisplayModel'
      security:
        - bearer: []
      summary: Adds the ApiKey Credentials for an Organization.
      tags:
        - Client Credentials
  /api/organizations/{organizationId}/api-keys/{apiKey}:
    get:
      operationId: ApiKeyCredentialsController_getApiKeyCredentials
      parameters:
        - name: organizationId
          required: true
          in: path
          schema:
            example: uuid
            type: string
        - name: apiKey
          required: true
          in: path
          schema:
            example: string
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiKeyCredentialDisplayModel'
      security:
        - bearer: []
      summary: Gets the ApiKey Credentials Information for an Organization.
      tags:
        - Client Credentials
    delete:
      operationId: ApiKeyCredentialsController_deleteApiKeyCredential
      parameters:
        - name: organizationId
          required: true
          in: path
          schema:
            example: uuid
            type: string
        - name: apiKey
          required: true
          in: path
          schema:
            example: string
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Deletes the ApiKey Credentials Information for an Organization.
      tags:
        - Client Credentials
  /api/organizations/{organizationId}/api-keys/{apiKey}/re-sync:
    post:
      operationId: ApiKeyCredentialsController_reSyncApiKeyCredentials
      parameters:
        - name: organizationId
          required: true
          in: path
          schema:
            example: uuid
            type: string
        - name: apiKey
          required: true
          in: path
          schema:
            example: string
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: ReSyncs the ApiKey Credentials Information for an Organization in ACM.
      tags:
        - Client Credentials
  /api/organizations/{organizationId}/api-keys/{apiKey}/archive:
    post:
      operationId: ApiKeyCredentialsController_archiveCC
      parameters:
        - name: organizationId
          required: true
          in: path
          schema:
            example: uuid
            type: string
        - name: apiKey
          required: true
          in: path
          schema:
            example: string
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Archives the Api Key information.
      tags:
        - Client Credentials
  /api/organizations/{organizationId}/api-keys/{apiKey}/restore:
    post:
      operationId: ApiKeyCredentialsController_restoreCC
      parameters:
        - name: organizationId
          required: true
          in: path
          schema:
            example: uuid
            type: string
        - name: apiKey
          required: true
          in: path
          schema:
            example: string
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Restores the Api Key information.
      tags:
        - Client Credentials
  /api/service-client-credentials/re-cache:
    post:
      description: Permissions needed - organizations.admin
      externalDocs:
        description: >-
          Visit the confluence story for more information - PART | CLIENT
          CREDENTIALS TECHNICAL SPECIFICATIONS 
        url: https://ecg.atlassian.net/wiki/x/AQAfv
      operationId: ServiceClientCredentialsController_reCache
      parameters: []
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: boolean
      security:
        - bearer: []
      summary: >-
        The purpose of this API is Re-Cache the Service Client Credentials in
        Redis
      tags:
        - Client Credentials
  /api/organizations/{organizationId}/status-histories:
    get:
      description: Permissions needed - subscribers.phi.read
      externalDocs:
        description: >-
          Visit the confluence story for more information - STORY - SUBCNCL |
          Create Subscriber Status Change History
        url: >-
          https://ecg.atlassian.net/wiki/spaces/ADDI/pages/2611216406/STORY+-+SUBCNCL+Create+Subscriber+Status+Change+History#API---LIST-SUBSCRIBER-STATUS-CHANGE-HISTORY
      operationId: SubscriberStatusChangeHistoryController_listStatusChangeHistory
      parameters:
        - name: organizationId
          required: true
          in: path
          schema:
            example: 59ac3d62-75c7-4636-9a64-56951b2f0ded
            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: subscriberId
          required: false
          in: query
          schema:
            example: 694d696f-88d2-495f-80d8-c72d4e6e8fa2
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: >-
                            #/components/schemas/SubscriberStatusChangeHistoryDisplayModel
                      currentPageNumber:
                        type: number
                        example: 0
                      recordsPerPage:
                        type: number
                        example: 0
                      totalRecords:
                        type: number
                        example: 0
                      totalPages:
                        type: number
                        example: 0
      security:
        - bearer: []
      summary: >-
        Retrieve the status change history for a specific subscriber, listing
        the records in ascending order of changed_at timestamp.
      tags:
        - Subscriber Status Change Histories
  /api/v2/partner-types:
    post:
      description: Permissions needed - partners.admin
      externalDocs:
        description: >-
          Visit the confluence story for more information - PART | Partner Type
          API Specifications
        url: >-
          https://ecg.atlassian.net/wiki/spaces/Commission/pages/2837610628/STORY+-+PART+Partner+Types#POST---API-Endpoint-for-adding-a-partner-type
      operationId: PartnerTypeController_addPartnerType
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddPartnerTypeDtoV2'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PartnerTypeDisplayModelV2'
      security:
        - bearer: []
      summary: The purpose of this API is to add a new partner type
      tags:
        - Partner-Types-V2
    get:
      description: Permissions needed - partners.read
      externalDocs:
        description: >-
          Visit the confluence story for more information - PART | Partner Type
          API Specifications
        url: >-
          https://ecg.atlassian.net/wiki/spaces/Commission/pages/2837610628/STORY+-+PART+Partner+Types#GET---API-to-list-all-the-partner-types
      operationId: PartnerTypeController_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: name, code or description'
          schema:
            type: string
        - name: include
          required: false
          in: query
          schema:
            type: array
            items:
              type: string
              enum:
                - parent-partner-types
                - child-partner-types
        - name: queryStatus
          required: false
          in: query
          schema:
            type: array
            items:
              type: string
              enum:
                - archived
                - active
                - inactive
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/PartnerTypeDisplayModelV2'
                      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 will list all the given partner types.
      tags:
        - Partner-Types-V2
  /api/v2/partner-types/{partnerTypeId}:
    get:
      description: Permissions needed - partners.read
      externalDocs:
        description: >-
          Visit the confluence story for more information - PART | Partner Type
          API Specifications
        url: >-
          https://ecg.atlassian.net/wiki/spaces/Commission/pages/2837610628/STORY+-+PART+Partner+Types#GET---API-to-get-partner-type-by-Id
      operationId: PartnerTypeController_getById
      parameters:
        - name: partnerTypeId
          required: true
          in: path
          schema:
            example: string
            type: string
        - name: include
          required: false
          in: query
          schema:
            type: array
            items:
              type: string
              enum:
                - parent-partner-types
                - child-partner-types
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PartnerTypeDisplayModelV2'
      security:
        - bearer: []
      summary: This API will get the partner type details
      tags:
        - Partner-Types-V2
    delete:
      description: Permissions needed - partners.admin
      externalDocs:
        description: >-
          Visit the confluence story for more information - PART | Partner Type
          API Specifications
        url: https://ecg.atlassian.net/wiki/x/hIAiqQ
      operationId: PartnerTypeController_delete
      parameters:
        - name: partnerTypeId
          required: true
          in: path
          schema:
            example: string
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: This API will delete the partner type.
      tags:
        - Partner-Types-V2
    patch:
      description: Permissions needed - partners.admin
      externalDocs:
        description: >-
          Visit the confluence story for more information - PART | Partner Type
          API Specifications
        url: >-
          https://ecg.atlassian.net/wiki/spaces/Commission/pages/2837610628/STORY+-+PART+Partner+Types#PATCH---API-to-update-a-partner-type
      operationId: PartnerTypeController_update
      parameters:
        - name: partnerTypeId
          required: true
          in: path
          schema:
            example: string
            type: string
      requestBody:
        required: true
        description: >+

          In the preceding JSON:

          1. The 'op' property indicates the type of operation. 


          2. The 'path' property indicates the element to update. 


          3. The 'value' property provides the new value. - The *TYPE* of
          'value' depends on the *TYPE* of the element in 'path'




          *For Example: If TYPE of element in path: '/isProvider' is 'boolean' ,
          then The TYPE of Value should be 'boolean'*   




          op can be 'add' , 'replace' or 'remove'    


          1. add : Add a property or array element. For existing property: set
          value. 


          2. remove : Remove a property or array element. 


          3. replace : Same as remove followed by add at same location. 


        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/JsonPatchDocumentDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PartnerTypeDisplayModelV2'
      security:
        - bearer: []
      summary: The purpose of this API is to update a specific partner type details.
      tags:
        - Partner-Types-V2
  /api/v2/partner-types/{partnerTypeId}/activate:
    post:
      description: Permissions needed - partners.admin
      externalDocs:
        description: >-
          Visit the confluence story for more information - PART | Partner Type
          API Specifications
        url: >-
          https://ecg.atlassian.net/wiki/spaces/Commission/pages/2837610628/STORY+-+PART+Partner+Types#POST---API-to-activate-a-partner-type
      operationId: PartnerTypeController_activate
      parameters:
        - name: partnerTypeId
          required: true
          in: path
          schema:
            example: string
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: This API activates a previously deactivated partner type.
      tags:
        - Partner-Types-V2
  /api/v2/partner-types/{partnerTypeId}/deactivate:
    post:
      description: Permissions needed - partners.admin
      externalDocs:
        description: >-
          Visit the confluence story for more information - PART | Partner Type
          API Specifications
        url: >-
          https://ecg.atlassian.net/wiki/spaces/ADD/pages/2613280769/CALADDI+Subscriber+Event+Occurrences#4.-Deactivate-Subscriber-Calendar-Event
      operationId: PartnerTypeController_deactivate
      parameters:
        - name: partnerTypeId
          required: true
          in: path
          schema:
            example: string
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: This API deactivates a given partner type.
      tags:
        - Partner-Types-V2
  /api/v2/partner-types/{partnerTypeId}/archive:
    post:
      description: Permissions needed - partners.admin
      externalDocs:
        description: >-
          Visit the confluence story for more information - PART | Partner Type
          API Specifications
        url: >-
          https://ecg.atlassian.net/wiki/spaces/Commission/pages/2837610628/STORY+-+PART+Partner+Types#POST---API-to-archive-a-partner-type
      operationId: PartnerTypeController_archive
      parameters:
        - name: partnerTypeId
          required: true
          in: path
          schema:
            example: string
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: 'This API archives a specific partner type '
      tags:
        - Partner-Types-V2
  /api/v2/partner-types/{partnerTypeId}/restore:
    post:
      description: Permissions needed - partners.admin
      externalDocs:
        description: >-
          Visit the confluence story for more information - PART | Partner Type
          API Specifications
        url: >-
          https://ecg.atlassian.net/wiki/spaces/Commission/pages/2837610628/STORY+-+PART+Partner+Types#POST---API-to-restore-a-partner-type
      operationId: PartnerTypeController_restore
      parameters:
        - name: partnerTypeId
          required: true
          in: path
          schema:
            example: string
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: This API restores a previously archived partner type.
      tags:
        - Partner-Types-V2
  /api/v2/partner-types/{partnerTypeId}/ancestries:
    get:
      description: Permissions needed - partners.read
      externalDocs:
        description: >-
          Visit the confluence story for more information - PART | Partner Type
          API Specifications
        url: >-
          https://ecg.atlassian.net/wiki/spaces/Commission/pages/2837610628/STORY+-+PART+Partner+Types#GET---API-to-list-all-the-ancestry-for-a-given-partner-types-(bottom-up)---Ancestry
      operationId: PartnerTypeController_ancestries
      parameters:
        - name: partnerTypeId
          required: true
          in: path
          schema:
            example: string
            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: mode
          required: false
          in: query
          schema:
            default: flat
            enum:
              - flat
              - groups
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/LevelPartnerTypeDisplayModelV2'
                      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 will list all the ancestry for a given partner types
        (bottom-up) - Ancestry.
      tags:
        - Partner-Types-V2
  /api/v2/partner-types/{partnerTypeId}/hierarchy:
    get:
      description: Permissions needed - partners.read
      externalDocs:
        description: >-
          Visit the confluence story for more information - PART | Partner Type
          API Specifications
        url: >-
          https://ecg.atlassian.net/wiki/spaces/Commission/pages/2837610628/STORY+-+PART+Partner+Types#GET---API-to-list-all-the-hierarchy-for-a-given-partner-types-(top-to-bottom)---Hierarchy
      operationId: PartnerTypeController_hierarchy
      parameters:
        - name: partnerTypeId
          required: true
          in: path
          schema:
            example: string
            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: mode
          required: false
          in: query
          schema:
            default: flat
            enum:
              - flat
              - groups
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/LevelPartnerTypeDisplayModelV2'
                      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 will list all the hierarchy for a given partner types
        (top-to-bottom) - Hierarchy.
      tags:
        - Partner-Types-V2
  /api/v2/partner-types/{partnerTypeId}/re-sync:
    post:
      description: Permissions needed - partners.admin
      externalDocs:
        description: >-
          Visit the confluence story for more information - PART | Partner Type
          API Specifications
        url: https://ecg.atlassian.net/wiki/x/hIAiqQ
      operationId: PartnerTypeController_reSync
      parameters:
        - name: partnerTypeId
          required: true
          in: path
          schema:
            example: string
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: >-
        This API serves two main purposes: 1. It recalculates the ancestry
        hierarchy for each node in the system, ensuring that all parent-child
        relationships are correctly established and updated. 2. After
        recalculating the ancestry, the API then synchronizes the updated
        partner type data with other microservices in the system, ensuring that
        the information is consistent across all services.
      tags:
        - Partner-Types-V2
  /api/v2/partner-types/re-sync-all:
    post:
      description: Permissions needed - partners.admin
      externalDocs:
        description: >-
          Visit the confluence story for more information - PART | Partner Type
          API Specifications
        url: https://ecg.atlassian.net/wiki/x/hIAiqQ
      operationId: PartnerTypeController_reSyncAll
      parameters: []
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: >-
        This API serves two main purposes: 1. It recalculates the ancestry
        hierarchy for each node in the system, ensuring that all parent-child
        relationships are correctly established and updated. 2. After
        recalculating the ancestry, the API then synchronizes the updated
        partner type data with other microservices in the system, ensuring that
        the information is consistent across all services.
      tags:
        - Partner-Types-V2
  /api/v2/partner-types/{partnerTypeId}/audit-trails:
    get:
      description: Permissions needed - partners.read
      externalDocs:
        description: >-
          Visit the confluence story for more information - PART | Partner Type
          API Specifications
        url: https://ecg.atlassian.net/wiki/x/hIAiqQ
      operationId: PartnerTypeController_getAuditTrails
      parameters:
        - name: partnerTypeId
          required: true
          in: path
          schema:
            example: string
            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
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/PartnerTypeDisplayModelV2'
                      currentPageNumber:
                        type: number
                        example: 0
                      recordsPerPage:
                        type: number
                        example: 0
                      totalRecords:
                        type: number
                        example: 0
                      totalPages:
                        type: number
                        example: 0
      security:
        - bearer: []
      summary: <MOCK API> audit trail.
      tags:
        - Partner-Types-V2
  /api/v2/partner-type-rules/{partnerTypeId}/audit-trails:
    get:
      description: Permissions needed - partners.read
      externalDocs:
        description: >-
          Visit the confluence story for more information - PART | Partner Type
          API Specifications
        url: https://ecg.atlassian.net/wiki/x/hIAiqQ
      operationId: PartnerTypeController_getAuditTrailsForPartnerTypeRule
      parameters:
        - name: partnerTypeId
          required: true
          in: path
          schema:
            example: string
            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
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/PartnerTypeDisplayModelV2'
                      currentPageNumber:
                        type: number
                        example: 0
                      recordsPerPage:
                        type: number
                        example: 0
                      totalRecords:
                        type: number
                        example: 0
                      totalPages:
                        type: number
                        example: 0
      security:
        - bearer: []
      summary: <MOCK API> audit trail.
      tags:
        - Partner-Types-V2
  /api/v2/partners:
    post:
      description: >-
        Permissions needed - organizations.billing.admin (This is for backward
        compatibility and will be deprecated soon) ,partners.create (This is the
        required permission to create a partner) 
      externalDocs:
        description: >-
          Visit the confluence story for more information - PART | Partner API
          Specifications
        url: https://ecg.atlassian.net/wiki/x/AQC0qw
      operationId: PartnerV2Controller_add
      parameters:
        - name: createApptivoAccount
          required: false
          in: query
          schema:
            default: 'false'
            enum:
              - 'true'
              - 'false'
            type: string
        - name: createBillDotComProfile
          required: false
          in: query
          schema:
            default: 'false'
            enum:
              - 'true'
              - 'false'
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddPartnerV2Dto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PartnerOrganizationDisplayModel'
      security:
        - bearer: []
      summary: The purpose of this API is to add a new partner
      tags:
        - Partner-Organizations
    get:
      description: Permissions needed - partners.read
      externalDocs:
        description: >-
          Visit the confluence story for more information - PART | Partner API
          Specifications
        url: https://ecg.atlassian.net/wiki/x/AQC0qw
      operationId: PartnerV2Controller_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: include
          required: false
          in: query
          schema:
            type: array
            items:
              type: string
              enum:
                - parent-partner
                - parent-partner-criteria
                - subsidiaries
                - partner-type
                - on-boarding-partner
        - name: status
          required: false
          in: query
          description: 'Default Value: [Active,Inactive,Suspended,Restored]'
          schema:
            type: array
            items:
              type: string
              enum:
                - Active
                - Inactive
                - Suspended
                - Archived
                - Restored
        - name: partnerStatus
          required: false
          in: query
          schema:
            type: array
            items:
              type: string
              enum:
                - on-boarded
                - active
                - inactive
                - suspended
                - on-hold
        - name: commissionPayoutStatus
          required: false
          in: query
          schema:
            type: array
            items:
              type: string
              enum:
                - active
                - inactive
                - blocked
                - pending-cutoff
                - under-charge-back
        - name: searchTerm
          required: false
          in: query
          description: 'Search By : Partner Organization displayName or businessName'
          schema:
            type: string
        - name: partnerTypeIds
          required: false
          in: query
          description: >-
            To filter by partnerTypeIds, make sure to include
            include=partner-type in the query parameters.
          schema:
            type: array
            items:
              type: string
        - name: partnerIds
          required: false
          in: query
          description: >-
            By adding the 'partnerIds' parameter to the API call, you can
            retrieve a list of partner information based on the specified IDs.
          schema:
            type: array
            items:
              type: string
        - name: w9Submitted
          required: false
          in: query
          description: Filter partners by W-9 submission status
          schema:
            type: boolean
        - name: enableCommissions
          required: false
          in: query
          description: Filter partners by commissions enabled status
          schema:
            type: boolean
        - name: isW2
          required: false
          in: query
          description: Filter partners by isW2 submission status
          schema:
            type: boolean
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/PartnerOrganizationDisplayModel'
                      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 will list all the given partners.
      tags:
        - Partner-Organizations
  /api/v2/partners/{partnerId}:
    get:
      description: Permissions needed - partners.read
      externalDocs:
        description: >-
          Visit the confluence story for more information - PART | Partner API
          Specifications
        url: https://ecg.atlassian.net/wiki/x/AQC0qw
      operationId: PartnerV2Controller_getById
      parameters:
        - name: partnerId
          required: true
          in: path
          schema:
            example: string
            type: string
        - name: include
          required: false
          in: query
          schema:
            type: array
            items:
              type: string
              enum:
                - parent-partner
                - parent-partner-criteria
                - subsidiaries
                - partner-type
                - on-boarding-partner
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PartnerOrganizationDisplayModel'
      security:
        - bearer: []
      summary: This API will get the partner details
      tags:
        - Partner-Organizations
    delete:
      description: Permissions needed - partners.admin
      externalDocs:
        description: >-
          Visit the confluence story for more information - PART | Partner API
          Specifications
        url: https://ecg.atlassian.net/wiki/x/AQC0qw
      operationId: PartnerV2Controller_delete
      parameters:
        - name: partnerId
          required: true
          in: path
          schema:
            example: string
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: This API will delete the partner.
      tags:
        - Partner-Organizations
    patch:
      description: Permissions needed - partners.admin
      externalDocs:
        description: >-
          Visit the confluence story for more information - PART | Partner API
          Specifications
        url: https://ecg.atlassian.net/wiki/x/AQC0qw
      operationId: PartnerV2Controller_update
      parameters:
        - name: partnerId
          required: true
          in: path
          schema:
            example: string
            type: string
      requestBody:
        required: true
        description: >+

          In the preceding JSON:

          1. The 'op' property indicates the type of operation. 


          2. The 'path' property indicates the element to update. 


          3. The 'value' property provides the new value. - The *TYPE* of
          'value' depends on the *TYPE* of the element in 'path'




          *For Example: If TYPE of element in path: '/isProvider' is 'boolean' ,
          then The TYPE of Value should be 'boolean'*   




          op can be 'add' , 'replace' or 'remove'    


          1. add : Add a property or array element. For existing property: set
          value. 


          2. remove : Remove a property or array element. 


          3. replace : Same as remove followed by add at same location. 


        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/JsonPatchDocumentDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PartnerOrganizationDisplayModel'
      security:
        - bearer: []
      summary: This API updates a specific partner.
      tags:
        - Partner-Organizations
  /api/v2/partners/{partnerId}/activate:
    post:
      description: Permissions needed - partners.admin
      externalDocs:
        description: >-
          Visit the confluence story for more information - PART | Partner API
          Specifications
        url: https://ecg.atlassian.net/wiki/x/AQC0qw
      operationId: PartnerV2Controller_activate
      parameters:
        - name: partnerId
          required: true
          in: path
          schema:
            example: string
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: This API activates a previously deactivated partner.
      tags:
        - Partner-Organizations
  /api/v2/partners/{partnerId}/deactivate:
    post:
      description: Permissions needed - partners.admin
      externalDocs:
        description: >-
          Visit the confluence story for more information - PART | Partner API
          Specifications
        url: https://ecg.atlassian.net/wiki/x/AQC0qw
      operationId: PartnerV2Controller_deactivate
      parameters:
        - name: partnerId
          required: true
          in: path
          schema:
            example: string
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: This API deactivates a given partner.
      tags:
        - Partner-Organizations
  /api/v2/partners/{partnerId}/archive:
    post:
      description: Permissions needed - partners.admin
      externalDocs:
        description: >-
          Visit the confluence story for more information - PART | Partner API
          Specifications
        url: https://ecg.atlassian.net/wiki/x/AQC0qw
      operationId: PartnerV2Controller_archive
      parameters:
        - name: partnerId
          required: true
          in: path
          schema:
            example: string
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: 'This API archives a specific partner '
      tags:
        - Partner-Organizations
  /api/v2/partners/{partnerId}/restore:
    post:
      description: Permissions needed - partners.admin
      externalDocs:
        description: >-
          Visit the confluence story for more information - PART | Partner API
          Specifications
        url: https://ecg.atlassian.net/wiki/x/AQC0qw
      operationId: PartnerV2Controller_restore
      parameters:
        - name: partnerId
          required: true
          in: path
          schema:
            example: string
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: This API restores a previously archived partner.
      tags:
        - Partner-Organizations
  /api/v2/partner-types/{partnerTypeId}/eligible-partners:
    get:
      description: Permissions needed - partners.read
      externalDocs:
        description: >-
          Visit the confluence story for more information - PART | Partner API
          Specifications
        url: >-
          https://ecg.atlassian.net/wiki/spaces/Commission/pages/2834464769/STORY+-+PART+Partners#GET---API-to-list-all-partners-that-can-potentially-be-assigned-as-parents%2C-based-on-the-correct-partner-types
      operationId: PartnerV2Controller_listEligiblePartners
      parameters:
        - name: partnerTypeId
          required: true
          in: path
          schema:
            example: string
            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:
                - parent-partner
                - parent-partner-criteria
                - subsidiaries
                - partner-type
                - on-boarding-partner
        - name: status
          required: false
          in: query
          description: 'Default Value: [Active,Inactive,Suspended,Restored]'
          schema:
            type: array
            items:
              type: string
              enum:
                - Active
                - Inactive
                - Suspended
                - Archived
                - Restored
        - name: partnerStatus
          required: false
          in: query
          schema:
            type: array
            items:
              type: string
              enum:
                - on-boarded
                - active
                - inactive
                - suspended
                - on-hold
        - name: commissionPayoutStatus
          required: false
          in: query
          schema:
            type: array
            items:
              type: string
              enum:
                - active
                - inactive
                - blocked
                - pending-cutoff
                - under-charge-back
        - name: searchTerm
          required: false
          in: query
          description: 'Search By : Partner Organization displayName or businessName'
          schema:
            type: string
        - name: partnerIds
          required: false
          in: query
          description: >-
            By adding the 'partnerIds' parameter to the API call, you can
            retrieve a list of partner information based on the specified IDs.
          schema:
            type: array
            items:
              type: string
        - name: w9Submitted
          required: false
          in: query
          description: Filter partners by W-9 submission status
          schema:
            type: boolean
        - name: enableCommissions
          required: false
          in: query
          description: Filter partners by commissions enabled status
          schema:
            type: boolean
        - name: isW2
          required: false
          in: query
          description: Filter partners by isW2 submission status
          schema:
            type: boolean
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/PartnerOrganizationDisplayModel'
                      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 partners that can potentially be
        assigned as parents, based on the correct partner type
      tags:
        - Partner-Organizations
  /api/v2/partners/{partnerId}/tiers:
    get:
      description: Permissions needed - partners.read
      externalDocs:
        description: >-
          Visit the confluence story for more information - PART | Partner API
          Specifications
        url: >-
          https://ecg.atlassian.net/wiki/spaces/Commission/pages/2834464769/STORY+-+PART+Partners#GET---API-to-list-all-the-ancestry-or-hierarchy-for-a-given-partner-based-on-mode-type
      operationId: PartnerV2Controller_tiers
      parameters:
        - name: partnerId
          required: true
          in: path
          schema:
            example: string
            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: mode
          required: true
          in: query
          schema:
            default: flat
            enum:
              - flat
              - nested
            type: string
        - name: modeType
          required: true
          in: query
          schema:
            default: ancestry
            enum:
              - ancestry
              - hierarchy
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/LevelPartnerDisplayModelV2'
                      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 will list all the ancestry or hierarchy tiers for a given
        partner based on the selected mode (ancestry or hierarchy).
      tags:
        - Partner-Organizations
  /api/v2/partners/{partnerId}/audit-trails:
    get:
      description: Permissions needed - partners.read
      externalDocs:
        description: >-
          Visit the confluence story for more information - PART | Partner API
          Specifications
        url: https://ecg.atlassian.net/wiki/x/AQC0qw
      operationId: PartnerV2Controller_getAuditTrails
      parameters:
        - name: partnerId
          required: true
          in: path
          schema:
            example: string
            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
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/AuditTrailDisplayModel'
                      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 fetch the audit trails based on the
        partner Id.
      tags:
        - Partner-Organizations
  /api/v2/partners/{partnerId}/crm-sync:
    post:
      description: Permissions needed - partners.admin,ecg-api-key
      externalDocs:
        description: >-
          Visit the confluence story for more information - PART | Partner API
          Specifications
        url: https://ecg.atlassian.net/wiki/x/AQC0qw
      operationId: PartnerV2Controller_crmSync
      parameters:
        - name: partnerId
          required: true
          in: path
          schema:
            example: string
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: The purpose of this API is to perform CRM Sync.
      tags:
        - Partner-Organizations
  /api/v2/partners/{partnerId}/re-sync:
    post:
      description: Permissions needed - partners.admin,ecg-api-key
      externalDocs:
        description: >-
          Visit the confluence story for more information - PART | Partner API
          Specifications
        url: https://ecg.atlassian.net/wiki/x/AQC0qw
      operationId: PartnerV2Controller_relayPartnerSync
      parameters:
        - name: partnerId
          required: true
          in: path
          schema:
            example: string
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: >-
        The purpose of this API is to triggers a sync for the specified partner
        across dependent systems.
      tags:
        - Partner-Organizations
  /api/v2/partners/re-sync-all:
    post:
      description: Permissions needed - partners.admin,ecg-api-key
      externalDocs:
        description: >-
          Visit the confluence story for more information - PART | Partner API
          Specifications
        url: https://ecg.atlassian.net/wiki/x/AQC0qw
      operationId: PartnerV2Controller_relayPartnerSyncAll
      parameters: []
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: >-
        The purpose of this API is to triggers a sync for the specified partner
        across dependent systems.
      tags:
        - Partner-Organizations
  /api/v2/partners/{partnerId}/vendorId-sync:
    post:
      operationId: PartnerV2Controller_syncVendorId
      parameters:
        - name: partnerId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
        - bearer: []
      summary: Syncs the vendor ID from Sage Intacct.
      tags:
        - Partner-Organizations
  /api/v2/partners/{partnerId}/vendors:
    post:
      description: Permissions needed - partners.admin
      externalDocs:
        description: >-
          Visit the confluence story for more information - BILL API | Partner
          Vendor
        url: https://ecg.atlassian.net/wiki/x/SYBXq
      operationId: VendorController_addVendor
      parameters:
        - name: partnerId
          required: true
          in: path
          schema:
            example: string
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddVendorAccountDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: The purpose of this API is to add a new vendor in bill-com
      tags:
        - Bill-Vendors
  /api/v2/partners/{partnerId}/vendors/{vendorId}/bank-accounts:
    put:
      description: Permissions needed - partners.admin
      externalDocs:
        description: >-
          Visit the confluence story for more information - BILL API | Partner
          Vendor
        url: https://ecg.atlassian.net/wiki/x/SYBXq
      operationId: VendorController_updateBankAccount
      parameters:
        - name: partnerId
          required: true
          in: path
          schema:
            example: string
            type: string
        - name: vendorId
          required: true
          in: path
          schema:
            example: string
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddBankAccountDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: The purpose of this API is to update vendor bank account in bill-com
      tags:
        - Bill-Vendors
    post:
      description: Permissions needed - partners.admin
      externalDocs:
        description: >-
          Visit the confluence story for more information - BILL API | Partner
          Vendor
        url: https://ecg.atlassian.net/wiki/x/SYBXq
      operationId: VendorController_addBankAccount
      parameters:
        - name: partnerId
          required: true
          in: path
          schema:
            example: string
            type: string
        - name: vendorId
          required: true
          in: path
          schema:
            example: string
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddBankAccountDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: The purpose of this API is to add a new vendor bank account in bill-com
      tags:
        - Bill-Vendors
    delete:
      description: Permissions needed - partners.admin
      externalDocs:
        description: >-
          Visit the confluence story for more information - BILL API | Partner
          Vendor
        url: https://ecg.atlassian.net/wiki/x/SYBXq
      operationId: VendorController_delete
      parameters:
        - name: partnerId
          required: true
          in: path
          schema:
            example: string
            type: string
        - name: vendorId
          required: true
          in: path
          schema:
            example: string
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: This API will delete the vendor bank account details from bill-com.
      tags:
        - Bill-Vendors
  /api/v2/partners/{partnerId}/vendors/{vendorId}/archive:
    post:
      description: Permissions needed - partners.admin
      externalDocs:
        description: >-
          Visit the confluence story for more information - BILL API | Partner
          Vendor
        url: https://ecg.atlassian.net/wiki/x/SYBXq
      operationId: VendorController_archive
      parameters:
        - name: partnerId
          required: true
          in: path
          schema:
            example: string
            type: string
        - name: vendorId
          required: true
          in: path
          schema:
            example: string
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: 'This API archives a specific vendor '
      tags:
        - Bill-Vendors
  /api/v2/partners/{partnerId}/vendors/{vendorId}/restore:
    post:
      description: Permissions needed - partners.admin
      externalDocs:
        description: >-
          Visit the confluence story for more information - BILL API | Partner
          Vendor
        url: https://ecg.atlassian.net/wiki/x/SYBXq
      operationId: VendorController_restore
      parameters:
        - name: partnerId
          required: true
          in: path
          schema:
            example: string
            type: string
        - name: vendorId
          required: true
          in: path
          schema:
            example: string
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: This API restores a previously archived vendor.
      tags:
        - Bill-Vendors
  /api/v2/partners/{partnerId}/vendors/{vendorId}:
    get:
      description: Permissions needed - partners.admin
      externalDocs:
        description: >-
          Visit the confluence story for more information - BILL API | Partner
          Vendor
        url: https://ecg.atlassian.net/wiki/x/SYBXq
      operationId: VendorController_getVendorData
      parameters:
        - name: partnerId
          required: true
          in: path
          schema:
            example: string
            type: string
        - name: vendorId
          required: true
          in: path
          schema:
            example: string
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VendorBankAccountDisplayModel'
      security:
        - bearer: []
      summary: The purpose of this API is view Vendor Account Details
      tags:
        - Bill-Vendors
  /api/v2/partners/{partnerId}/check-status:
    get:
      description: Permissions needed - partners.admin
      externalDocs:
        description: >-
          Visit the confluence story for more information - BILL API | Partner
          Vendor
        url: https://ecg.atlassian.net/wiki/x/SYBXq
      operationId: VendorController_checkStatus
      parameters:
        - name: partnerId
          required: true
          in: path
          schema:
            example: string
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CheckStatusResponseDto'
      security:
        - bearer: []
      summary: Checks if the partner vendor is active and accessible in Bill.com
      tags:
        - Bill-Vendors
  /api/v2/partners/{partnerId}/activities:
    get:
      description: Permissions needed - partners.read
      externalDocs:
        description: >-
          Visit the confluence story for more information - PART | Partner
          Activities
        url: >-
          https://ecg.atlassian.net/wiki/spaces/Commission/pages/2772467739/STORY+-+PART+Track+Partner+Activity#4.-API-Endpoint-for-Viewing-activity
      operationId: PartnerActivityController_listPartnerActivity
      parameters:
        - name: partnerId
          required: true
          in: path
          schema:
            example: c7b49189-fd29-4583-98f6-ae7c8ebf0776
            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: activityType
          required: false
          in: query
          schema:
            type: array
            items:
              type: string
              enum:
                - sales-cutoff-date
                - status
                - commission-payout-status
                - deactivated-date
                - onboarding-date
                - enable-commission
                - w9-submitted
                - sign-on-date
        - name: dateRangeType
          required: false
          in: query
          description: 'default: this-month'
          schema:
            default: this-month
            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:27:06.589Z'
            type: string
        - name: to
          required: false
          in: query
          schema:
            example: '2026-03-04T17:27:06.589Z'
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/PartnerActivityDisplayModel'
                      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 Partner Activities
      tags:
        - Partner-Activities
  /organizations/{organizationId}/teams:
    post:
      operationId: TeamsController_createTeam
      parameters:
        - name: organizationId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateTeamDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TeamDisplayModel'
      security:
        - bearer: []
      summary: Create a team.
      tags:
        - Teams
    get:
      operationId: TeamsController_listOrgTeams
      parameters:
        - name: organizationId
          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: sort_by
          required: false
          in: query
          schema:
            default: createdAt
            example: createdAt
            enum:
              - name
              - createdAt
              - updatedAt
            type: string
        - name: include_parents
          required: false
          in: query
          schema:
            default: false
            example: false
            type: boolean
        - name: status
          required: false
          in: query
          schema:
            type: array
            items:
              type: string
              enum:
                - active
                - inactive
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/TeamDisplayModel'
                      currentPageNumber:
                        type: number
                        example: 0
                      recordsPerPage:
                        type: number
                        example: 0
                      totalRecords:
                        type: number
                        example: 0
                      totalPages:
                        type: number
                        example: 0
      security:
        - bearer: []
      summary: List all teams in an organization.
      tags:
        - Teams
  /organizations/{organizationId}/teams/{teamId}:
    patch:
      operationId: TeamsController_updateTeam
      parameters:
        - name: organizationId
          required: true
          in: path
          schema:
            type: string
        - name: teamId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        description: >+

          In the preceding JSON:

          1. The 'op' property indicates the type of operation. 


          2. The 'path' property indicates the element to update. 


          3. The 'value' property provides the new value. - The *TYPE* of
          'value' depends on the *TYPE* of the element in 'path'




          *For Example: If TYPE of element in path: '/isProvider' is 'boolean' ,
          then The TYPE of Value should be 'boolean'*   




          op can be 'add' , 'replace' or 'remove'    


          1. add : Add a property or array element. For existing property: set
          value. 


          2. remove : Remove a property or array element. 


          3. replace : Same as remove followed by add at same location. 


        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/JsonPatchDocumentDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TeamDisplayModel'
      security:
        - bearer: []
      summary: Update a team.
      tags:
        - Teams
    get:
      operationId: TeamsController_getTeamDetails
      parameters:
        - name: organizationId
          required: true
          in: path
          schema:
            type: string
        - name: teamId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TeamDisplayModel'
      security:
        - bearer: []
      summary: Get the team details.
      tags:
        - Teams
  /organizations/{organizationId}/teams/{teamId}/members:
    post:
      operationId: TeamsController_addMember
      parameters:
        - name: organizationId
          required: true
          in: path
          schema:
            type: string
        - name: teamId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddTeamMemberDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TeamMemberDisplayModel'
      security:
        - bearer: []
      summary: Add a member to a team.
      tags:
        - Teams
  /organizations/{organizationId}/teams/{teamId}/members/{personId}:
    delete:
      operationId: TeamsController_removeMember
      parameters:
        - name: organizationId
          required: true
          in: path
          schema:
            type: string
        - name: teamId
          required: true
          in: path
          schema:
            type: string
        - name: personId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Remove a member from a team.
      tags:
        - Teams
  /teams/{teamId}/members:
    get:
      operationId: TeamsController_listMembers
      parameters:
        - name: teamId
          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: sort_by
          required: false
          in: query
          schema:
            default: joinedAt
            example: joinedAt
            enum:
              - firstName
              - lastName
              - joinedAt
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/TeamMemberDisplayModel'
                      currentPageNumber:
                        type: number
                        example: 0
                      recordsPerPage:
                        type: number
                        example: 0
                      totalRecords:
                        type: number
                        example: 0
                      totalPages:
                        type: number
                        example: 0
      security:
        - bearer: []
      summary: List all members of a team.
      tags:
        - Teams
  /persons/{personId}/teams:
    get:
      operationId: TeamsController_getPersonTeams
      parameters:
        - name: personId
          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: sort_by
          required: false
          in: query
          schema:
            default: createdAt
            example: createdAt
            enum:
              - name
              - createdAt
              - updatedAt
            type: string
        - name: status
          required: false
          in: query
          schema:
            type: array
            items:
              type: string
              enum:
                - active
                - inactive
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/TeamDisplayModel'
                      currentPageNumber:
                        type: number
                        example: 0
                      recordsPerPage:
                        type: number
                        example: 0
                      totalRecords:
                        type: number
                        example: 0
                      totalPages:
                        type: number
                        example: 0
      security:
        - bearer: []
      summary: List all teams that a person is a member of.
      tags:
        - Teams
  /organizations/{organizationId}/teams/{teamId}/archive:
    post:
      operationId: TeamsController_archiveTeam
      parameters:
        - name: organizationId
          required: true
          in: path
          schema:
            type: string
        - name: teamId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Archive a team.
      tags:
        - Teams
  /organizations/{organizationId}/teams/{teamId}/restore:
    post:
      operationId: TeamsController_restoreTeam
      parameters:
        - name: organizationId
          required: true
          in: path
          schema:
            type: string
        - name: teamId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Restore a team from being archived.
      tags:
        - Teams
  /teams/{teamId}:
    delete:
      operationId: TeamsController_deleteTeam
      parameters:
        - name: teamId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Delete a team.
      tags:
        - Teams
  /organizations/{organizationId}/teams/{teamId}/deactivate:
    post:
      operationId: TeamsController_deactivateTeam
      parameters:
        - name: organizationId
          required: true
          in: path
          schema:
            type: string
        - name: teamId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Set a team to an inactive state.
      tags:
        - Teams
  /organizations/{organizationId}/teams/{teamId}/activate:
    post:
      operationId: TeamsController_activateTeam
      parameters:
        - name: organizationId
          required: true
          in: path
          schema:
            type: string
        - name: teamId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: Set a team to an active state.
      tags:
        - Teams
  /api/organizations/{organizationId}/vendor-profiles:
    get:
      description: Permissions needed - organizations.admin,ecg-api-key
      externalDocs:
        description: >-
          Visit the confluence story for more information - PART | V2 - Retrieve
          Vendor Credentials for an Organization
        url: >-
          https://ecg.atlassian.net/wiki/spaces/ADDI/pages/3136946204/API+Anelto+Profile+Support+Enhancements#What-is-Expected#6.-V2---Retrieve-Vendor-Credentials-for-an-Organization--IMP
      operationId: VendorProfileController_getCredentials
      parameters:
        - name: organizationId
          required: true
          in: path
          schema:
            example: 7151e6ce-07e1-4a81-823e-6db3f5f14dd5
            type: string
        - name: type
          required: false
          in: query
          schema:
            example: vendor-profile
            enum:
              - vendor-profile
              - anelto-credential
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: >-
                            #/components/schemas/OrganizationVendorProfileDisplayModel
                      totalRecords:
                        type: number
                        example: 0
      security:
        - bearer: []
      summary: >-
        V2 Version - This API provides the Vendor Profiles associated with a
        specific Organization. Credentials may originate from an Vendor Profile
        or the legacy organization-level credential system. The system
        intelligently determines the appropriate credential source and returns a
        secure reference to it.
      tags:
        - Vendor Profiles
  /api/vendor-profiles:
    post:
      description: Permissions needed - organizations.admin
      externalDocs:
        description: >-
          Visit the confluence story for more information - PART | Vendor
          Profile API Specifications
        url: >-
          https://ecg.atlassian.net/wiki/spaces/ADDI/pages/3136946204/API+Anelto+Profile+Support+Enhancements#What-is-Expected
      operationId: VendorProfileController_add
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddVendorProfileDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VendorProfileDisplayModel'
      security:
        - bearer: []
      summary: The purpose of this API is to add Vendor Profile
      tags:
        - Vendor Profiles
    get:
      description: Permissions needed - organizations.read
      externalDocs:
        description: >-
          Visit the confluence story for more information - PART | Vendor
          Profiles
        url: >-
          https://ecg.atlassian.net/wiki/spaces/ADDI/pages/3136946204/API+Anelto+Profile+Support+Enhancements#What-is-Expected
      operationId: VendorProfileController_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: Vendor Profile Name Or Description '
          schema:
            type: string
        - name: dateRangeType
          required: false
          in: query
          description: Filters based on created-at
          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
          schema:
            example: '2026-03-04T17:27:05.233Z'
            type: string
        - name: to
          required: false
          in: query
          schema:
            example: '2026-03-04T17:27:05.234Z'
            type: string
        - name: activeFilter
          required: false
          in: query
          description: Filters by vendor active status
          schema:
            type: boolean
        - name: source
          required: false
          in: query
          description: Filter based on source
          schema:
            enum:
              - anelto
              - essence
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/VendorProfilePreviewModel'
                      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 Vendor Profiles
      tags:
        - Vendor Profiles
  /api/vendor-profiles/{vendorProfileId}:
    get:
      description: Permissions needed - organizations.admin,ecg-api-key
      externalDocs:
        description: >-
          Visit the confluence story for more information - PART | Get Vendor
          Profile by ID
        url: >-
          https://ecg.atlassian.net/wiki/spaces/ADDI/pages/3136946204/API+Anelto+Profile+Support+Enhancements#What-is-Expected
      operationId: VendorProfileController_getById
      parameters:
        - name: vendorProfileId
          required: true
          in: path
          schema:
            example: c3540418-602c-49f3-8d91-9ca50e682df8
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VendorProfileDisplayModel'
      security:
        - bearer: []
      summary: The purpose of this API is to get Vendor Profile details by ID
      tags:
        - Vendor Profiles
    patch:
      description: Permissions needed - organizations.admin
      externalDocs:
        description: >-
          Visit the confluence story for more information - PART | Update Vendor
          Profile
        url: >-
          https://ecg.atlassian.net/wiki/spaces/ADDI/pages/3136946204/API+Anelto+Profile+Support+Enhancements#What-is-Expected
      operationId: VendorProfileController_update
      parameters:
        - name: vendorProfileId
          required: true
          in: path
          schema:
            example: c3540418-602c-49f3-8d91-9ca50e682df8
            type: string
      requestBody:
        required: true
        description: >+

          In the preceding JSON:

          1. The 'op' property indicates the type of operation. 


          2. The 'path' property indicates the element to update. 


          3. The 'value' property provides the new value. - The *TYPE* of
          'value' depends on the *TYPE* of the element in 'path'




          *For Example: If TYPE of element in path: '/isProvider' is 'boolean' ,
          then The TYPE of Value should be 'boolean'*   




          op can be 'add' , 'replace' or 'remove'    


          1. add : Add a property or array element. For existing property: set
          value. 


          2. remove : Remove a property or array element. 


          3. replace : Same as remove followed by add at same location. 


        content:
          application/json:
            schema:
              $ref: '#/components/schemas/JsonPatchDocumentItemDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VendorProfileDisplayModel'
      security:
        - bearer: []
      summary: >-
        The purpose of this API is to update an existing Vendor Profile. Only
        source and description fields can be updated.
      tags:
        - Vendor Profiles
  /api/vendor-profiles/{vendorProfileId}/re-sync:
    post:
      description: Permissions needed - organizations.admin,ecg-api-key
      externalDocs:
        description: >-
          Visit the confluence story for more information - PART | Resync cache
          to Redis
        url: https://ecg.atlassian.net/wiki/x/HAD6ug
      operationId: VendorProfileController_resync
      parameters:
        - name: vendorProfileId
          required: true
          in: path
          schema:
            example: c3540418-602c-49f3-8d91-9ca50e682df8
            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 Vendor Profile details in redis
        cache
      tags:
        - Vendor Profiles
  /api/vendor-profiles/re-sync:
    post:
      description: Permissions needed - organizations.admin,ecg-api-key
      externalDocs:
        description: >-
          Visit the confluence story for more information - PART | Resync cache
          to Redis
        url: https://ecg.atlassian.net/wiki/x/HAD6ug
      operationId: VendorProfileController_resyncAll
      parameters: []
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: >-
        The purpose of this API is to re-sync Vendor Profile details in redis
        cache
      tags:
        - Vendor Profiles
  /api/vendor-profiles/{vendorProfileId}/activate:
    post:
      description: Permissions needed - organizations.admin
      externalDocs:
        description: >-
          Visit the confluence story for more information - PART | Activate
          Vendor Profile
        url: >-
          https://ecg.atlassian.net/wiki/spaces/ADDI/pages/3136946204/API+Anelto+Profile+Support+Enhancements#What-is-Expected
      operationId: VendorProfileController_activate
      parameters:
        - name: vendorProfileId
          required: true
          in: path
          schema:
            example: c3540418-602c-49f3-8d91-9ca50e682df8
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: The purpose of this API is to activate an Vendor Profile
      tags:
        - Vendor Profiles
  /api/vendor-profiles/{vendorProfileId}/deactivate:
    post:
      description: Permissions needed - organizations.admin
      externalDocs:
        description: >-
          Visit the confluence story for more information - PART | Deactivate
          Vendor Profile
        url: >-
          https://ecg.atlassian.net/wiki/spaces/ADDI/pages/3136946204/API+Anelto+Profile+Support+Enhancements#What-is-Expected
      operationId: VendorProfileController_deactivate
      parameters:
        - name: vendorProfileId
          required: true
          in: path
          schema:
            example: c3540418-602c-49f3-8d91-9ca50e682df8
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoolResult'
      security:
        - bearer: []
      summary: The purpose of this API is to deactivate an Vendor Profile
      tags:
        - Vendor Profiles
  /api/vendor-profiles/{vendorProfileId}/organizations:
    get:
      description: Permissions needed - organizations.read
      operationId: VendorProfileController_getOrganizations
      parameters:
        - name: vendorProfileId
          required: true
          in: path
          schema:
            example: c3540418-602c-49f3-8d91-9ca50e682df8
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - properties:
                      items:
                        type: array
                        items:
                          $ref: '#/components/schemas/OrganizationDisplayModel'
                      totalRecords:
                        type: number
                        example: 0
      security:
        - bearer: []
      summary: >-
        The purpose of this API is to get the organizations associated with a
        specific Vendor Profile
      tags:
        - Vendor Profiles
components:
  securitySchemes:
    bearer:
      scheme: bearer
      bearerFormat: JWT
      type: http
  schemas:
    AddApplicationDto:
      type: object
      properties:
        name:
          type: string
          example: string
        description:
          type: string
          example: string
        cognitoAppId:
          type: string
          example: string | null
        modules:
          example:
            - 3aa6188f-5b71-493f-8a18-8e399f15375c
          type: array
          items:
            type: string
      required:
        - name
        - description
    ArchiveInfoDto:
      type: object
      properties:
        archived:
          type: boolean
          example: false
        archivedStatusChangedAt:
          format: date-time
          type: string
          example: '2026-03-04T17:27:05.147Z'
    AuditInfoDto:
      type: object
      properties:
        createdAt:
          format: date-time
          type: string
          example: '2026-03-04T17:27:05.145Z'
        createdBy:
          type: string
          example: a36ac2c8-1a00-4cf0-9f8c-981dc1ffd4cd
        updatedAt:
          format: date-time
          type: string
          example: '2026-03-04T17:27:05.146Z'
        updatedBy:
          type: string
          example: 1372b691-af02-4b90-945a-c6351e785879
    ActiveInfoDto:
      type: object
      properties:
        active:
          type: boolean
          example: true
        activeStatusChangedAt:
          format: date-time
          type: string
          example: '2026-03-04T17:27:05.147Z'
      required:
        - active
        - activeStatusChangedAt
    ChildModuleDisplayModel:
      type: object
      properties:
        id:
          type: string
          example: ed118ba9-5461-43b5-b9fa-f4d88a397d25
        name:
          type: string
          example: string
        description:
          type: string
          example: string
        archiveInfo:
          $ref: '#/components/schemas/ArchiveInfoDto'
        auditInfo:
          $ref: '#/components/schemas/AuditInfoDto'
        activeInfo:
          $ref: '#/components/schemas/ActiveInfoDto'
      required:
        - id
        - name
        - description
        - archiveInfo
        - auditInfo
        - activeInfo
    ApplicationDisplayModel:
      type: object
      properties:
        id:
          type: string
          example: 3b24fe76-48f0-473f-ba04-f1b2ea1b9aad
        name:
          type: string
          example: string
        description:
          type: string
          example: string
        cognitoAppId:
          type: string
          example: string
        archiveInfo:
          $ref: '#/components/schemas/ArchiveInfoDto'
        auditInfo:
          $ref: '#/components/schemas/AuditInfoDto'
        activeInfo:
          $ref: '#/components/schemas/ActiveInfoDto'
        modules:
          type: array
          items:
            $ref: '#/components/schemas/ChildModuleDisplayModel'
      required:
        - id
        - name
        - description
        - cognitoAppId
        - archiveInfo
        - auditInfo
        - activeInfo
    BoolResult:
      type: object
      properties:
        value:
          type: boolean
          example: true
      required:
        - value
    UpdateApplicationDto:
      type: object
      properties:
        name:
          type: string
          example: string
        description:
          type: string
          example: string
        cognitoAppId:
          type: string
          example: string
        modules:
          example:
            - 38be4224-9fed-49d0-80a4-bf8e62e75dda
          type: array
          items:
            type: string
      required:
        - name
        - description
    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
    AddModuleIdsDto:
      type: object
      properties:
        moduleIds:
          example:
            - e327f153-7c7d-4512-9ca0-f338fe108ebc
          type: array
          items:
            type: string
      required:
        - moduleIds
    AddModuleDto:
      type: object
      properties:
        name:
          type: string
          example: string
        description:
          type: string
          example: string | null
      required:
        - name
    PhoneNumberDisplayModel:
      type: object
      properties:
        id:
          type: string
          example: 2674269e-d3b2-4cd0-a693-20953b1818b9
        phoneType:
          type: number
          example: '1'
        phoneNumber:
          type: string
          example: string
        extension:
          type: string
          example: string
      required:
        - id
        - phoneType
        - phoneNumber
        - extension
    PartyAddressDisplayModel:
      type: object
      properties:
        id:
          type: string
          example: d8036c26-3113-44be-ba4f-f60934b8eab1
        addressType:
          type: number
          example: 1
        addressLine1:
          type: string
          example: 252 Lomas Santa Fe Dr Suite 290
        addressLine2:
          type: string
          example: Behind times square garden
        stateProvinceCode:
          type: string
          example: AL
        stateProvinceName:
          type: string
          example: Alabama
        city:
          type: string
          example: San Diego
        postalCode:
          type: string
          example: '92075'
        countryCode:
          type: string
          example: US
        countryName:
          type: string
          example: United States
        regionCode:
          type: string
          enum:
            - US
            - EU
        regionName:
          type: string
          example: United States
        auditInfo:
          $ref: '#/components/schemas/AuditInfoDto'
      required:
        - id
        - addressType
        - auditInfo
    PartyDisplayModel:
      type: object
      properties:
        id:
          type: string
          example: c182ed73-7b78-4d27-a14b-e30acf7f4104
        legacyIdentifier:
          type: string
          example: string
        archiveInfo:
          $ref: '#/components/schemas/ArchiveInfoDto'
        auditInfo:
          $ref: '#/components/schemas/AuditInfoDto'
        activeInfo:
          $ref: '#/components/schemas/ActiveInfoDto'
        phoneNumbers:
          type: array
          items:
            $ref: '#/components/schemas/PhoneNumberDisplayModel'
        addresses:
          type: array
          items:
            $ref: '#/components/schemas/PartyAddressDisplayModel'
      required:
        - id
        - legacyIdentifier
        - archiveInfo
        - auditInfo
        - activeInfo
        - phoneNumbers
        - addresses
    AncestryNodeDto:
      type: object
      properties:
        level:
          type: number
          description: The level of the ancestry node in the hierarchy
          example: 1
        id:
          type: string
          description: The unique identifier of the ancestry node
          example: c977309b-3b1f-454b-968f-38444871ef18
      required:
        - level
        - id
    AncestryItemDto:
      type: object
      properties:
        items:
          description: List of ancestry nodes in this group
          type: array
          items:
            $ref: '#/components/schemas/AncestryNodeDto'
        totalItems:
          type: number
          description: The total count of nodes in this ancestry group
          example: 4
      required:
        - items
        - totalItems
    AncestryMetadataDto:
      type: object
      properties:
        groups:
          description: List of ancestry groups in the response
          type: array
          items:
            $ref: '#/components/schemas/AncestryItemDto'
        totalGroups:
          type: number
          description: Total number of ancestry groups
          example: 2
      required:
        - groups
        - totalGroups
    ChildPartnerTypeDisplayModelV2:
      type: object
      properties:
        id:
          type: string
          example: 1e01f3be-d88a-42a0-bbd3-09fc8aa3bc4d
        name:
          type: string
          example: string
        code:
          type: string
          example: string
        description:
          type: string
          example: string
        allowSelfParenting:
          type: boolean
          example: false
        ancestryMetadata:
          $ref: '#/components/schemas/AncestryMetadataDto'
        apptivoValueId:
          type: string
          example: string
        auditInfo:
          $ref: '#/components/schemas/AuditInfoDto'
        activeInfo:
          $ref: '#/components/schemas/ActiveInfoDto'
        archiveInfo:
          $ref: '#/components/schemas/ArchiveInfoDto'
      required:
        - id
        - name
        - code
        - auditInfo
        - activeInfo
        - archiveInfo
    PartnerTypeDisplayModelV2:
      type: object
      properties:
        id:
          type: string
          example: 1e01f3be-d88a-42a0-bbd3-09fc8aa3bc4d
        name:
          type: string
          example: string
        code:
          type: string
          example: string
        description:
          type: string
          example: string
        allowSelfParenting:
          type: boolean
          example: false
        ancestryMetadata:
          $ref: '#/components/schemas/AncestryMetadataDto'
        apptivoValueId:
          type: string
          example: string
        auditInfo:
          $ref: '#/components/schemas/AuditInfoDto'
        activeInfo:
          $ref: '#/components/schemas/ActiveInfoDto'
        archiveInfo:
          $ref: '#/components/schemas/ArchiveInfoDto'
        parentPartnerTypes:
          type: array
          items:
            $ref: '#/components/schemas/ChildPartnerTypeDisplayModelV2'
        childPartnerTypes:
          type: array
          items:
            $ref: '#/components/schemas/ChildPartnerTypeDisplayModelV2'
      required:
        - id
        - name
        - code
        - auditInfo
        - activeInfo
        - archiveInfo
    VendorMetadataDto:
      type: object
      properties:
        vendorId:
          type: string
          example: 00902NCBVPYCOHO2b47k
          description: BILL-generated ID of the vendor. The value begins with 009.
        archived:
          type: boolean
          example: false
          description: Set as true if the vendor is archived
        isBankAccountLinked:
          type: boolean
          example: true
          description: Indicates whether a bank account is linked to the vendor.
      required:
        - vendorId
        - archived
        - isBankAccountLinked
    PartnerCriteriaDisplayModel:
      type: object
      properties:
        id:
          type: string
          example: 2faa49d6-1f60-452b-a6b8-a8b3acb8f384
        partnerType:
          $ref: '#/components/schemas/PartnerTypeDisplayModelV2'
        status:
          type: string
          enum:
            - on-boarded
            - active
            - inactive
            - suspended
            - on-hold
        commissionPayoutStatus:
          type: string
          enum:
            - active
            - inactive
            - blocked
            - pending-cutoff
            - under-charge-back
        deactivatedDate:
          format: date-time
          type: string
          example: '2026-03-04T17:27:05.268Z'
        onboardingDate:
          format: date-time
          type: string
          example: '2026-03-04T17:27:05.268Z'
        salesCutOffDate:
          format: date-time
          type: string
          example: '2026-03-04T17:27:05.268Z'
        enableCommissions:
          type: boolean
          example: false
        w9Submitted:
          type: boolean
          example: false
        isW2:
          type: boolean
          example: false
        vendorMetadata:
          $ref: '#/components/schemas/VendorMetadataDto'
      required:
        - id
        - partnerType
    OrganizationChildDisplayModel:
      type: object
      properties:
        id:
          type: string
          example: 854e27cb-7ddd-4c0f-950d-1d60bc9e0cb9
        type:
          type: string
          example: string
        status:
          type: string
          example: string
        hcoXrefId:
          type: string
          example: string
        businessName:
          type: string
          example: string
        displayName:
          type: string
          example: string
        integrationMetadata:
          type: object
          example:
            key: value
        nodes:
          example:
            - a60dbf9d-2963-4256-9019-94296a81cb1c
          type: array
          items:
            type: string
        ancestryNodes:
          example:
            - 289fe665-e0aa-4eab-9440-cdbfbd9afdee
          type: array
          items:
            type: string
        originationSource:
          type: string
          example: string
        onBoardingStatus:
          type: number
          example: 1
        organizationStatus:
          type: number
          example: 1
        rrmsSiteGroupId:
          type: string
          example: 974ad49c-2a0c-4a88-b25a-5852047b3407
        timezoneId:
          type: string
          example: string
        archiveInfo:
          $ref: '#/components/schemas/ArchiveInfoDto'
        auditInfo:
          $ref: '#/components/schemas/AuditInfoDto'
        activeInfo:
          $ref: '#/components/schemas/ActiveInfoDto'
        party:
          $ref: '#/components/schemas/PartyDisplayModel'
        signOnDate:
          format: date-time
          type: string
          example: '2026-03-04T17:27:05.269Z'
        actionPlanCode:
          type: string
          example: string
        customerId:
          type: string
          example: string
        partnerCriteria:
          $ref: '#/components/schemas/PartnerCriteriaDisplayModel'
        vendorProfiles:
          oneOf:
            - $ref: '#/components/schemas/VendorProfilePreviewModel'
            - type: string
      required:
        - id
        - type
        - businessName
        - displayName
        - nodes
        - ancestryNodes
        - originationSource
        - onBoardingStatus
        - organizationStatus
        - archiveInfo
        - auditInfo
        - activeInfo
    OrganizationDisplayModel:
      type: object
      properties:
        id:
          type: string
          example: 854e27cb-7ddd-4c0f-950d-1d60bc9e0cb9
        type:
          type: string
          example: string
        status:
          type: string
          example: string
        hcoXrefId:
          type: string
          example: string
        businessName:
          type: string
          example: string
        displayName:
          type: string
          example: string
        integrationMetadata:
          type: object
          example:
            key: value
        nodes:
          example:
            - a60dbf9d-2963-4256-9019-94296a81cb1c
          type: array
          items:
            type: string
        ancestryNodes:
          example:
            - 289fe665-e0aa-4eab-9440-cdbfbd9afdee
          type: array
          items:
            type: string
        originationSource:
          type: string
          example: string
        onBoardingStatus:
          type: number
          example: 1
        organizationStatus:
          type: number
          example: 1
        rrmsSiteGroupId:
          type: string
          example: 974ad49c-2a0c-4a88-b25a-5852047b3407
        timezoneId:
          type: string
          example: string
        archiveInfo:
          $ref: '#/components/schemas/ArchiveInfoDto'
        auditInfo:
          $ref: '#/components/schemas/AuditInfoDto'
        activeInfo:
          $ref: '#/components/schemas/ActiveInfoDto'
        party:
          $ref: '#/components/schemas/PartyDisplayModel'
        signOnDate:
          format: date-time
          type: string
          example: '2026-03-04T17:27:05.269Z'
        actionPlanCode:
          type: string
          example: string
        customerId:
          type: string
          example: string
        partnerCriteria:
          $ref: '#/components/schemas/PartnerCriteriaDisplayModel'
        vendorProfiles:
          oneOf:
            - $ref: '#/components/schemas/VendorProfilePreviewModel'
            - type: string
        parentOrganization:
          $ref: '#/components/schemas/OrganizationChildDisplayModel'
        onBoardingPartner:
          type: string
          example: a9c5be63-caa4-4e84-8ef1-505e8298f36e
          deprecated: true
        childOrganizations:
          type: array
          items:
            $ref: '#/components/schemas/OrganizationChildDisplayModel'
      required:
        - id
        - type
        - businessName
        - displayName
        - nodes
        - ancestryNodes
        - originationSource
        - onBoardingStatus
        - organizationStatus
        - archiveInfo
        - auditInfo
        - activeInfo
    ChildPolicyDisplayModel:
      type: object
      properties:
        id:
          type: string
          example: e160a352-6a2b-4e25-9d63-b1183e1ad29b
        name:
          type: string
          example: string
        code:
          type: string
          example: string
        description:
          type: string
          example: string
        IsInUse:
          type: boolean
          example: false
        internalUseOnly:
          type: boolean
          example: false
        archiveInfo:
          $ref: '#/components/schemas/ArchiveInfoDto'
        auditInfo:
          $ref: '#/components/schemas/AuditInfoDto'
        activeInfo:
          $ref: '#/components/schemas/ActiveInfoDto'
        organization:
          $ref: '#/components/schemas/OrganizationDisplayModel'
      required:
        - id
        - name
        - code
        - description
        - IsInUse
        - archiveInfo
        - auditInfo
        - activeInfo
    PermissionDisplayModel:
      type: object
      properties:
        id:
          type: string
          example: 2175bf42-8efb-4fff-9fda-254cbdafd5af
        name:
          type: string
          example: string
        code:
          type: string
          example: string
        description:
          type: string
          example: string
        archiveInfo:
          $ref: '#/components/schemas/ArchiveInfoDto'
        auditInfo:
          $ref: '#/components/schemas/AuditInfoDto'
        activeInfo:
          $ref: '#/components/schemas/ActiveInfoDto'
        module:
          $ref: '#/components/schemas/ChildModuleDisplayModel'
        policies:
          type: array
          items:
            $ref: '#/components/schemas/ChildPolicyDisplayModel'
      required:
        - id
        - name
        - code
        - description
        - archiveInfo
        - auditInfo
        - activeInfo
        - module
    ModuleDisplayModel:
      type: object
      properties:
        id:
          type: string
          example: ed118ba9-5461-43b5-b9fa-f4d88a397d25
        name:
          type: string
          example: string
        description:
          type: string
          example: string
        archiveInfo:
          $ref: '#/components/schemas/ArchiveInfoDto'
        auditInfo:
          $ref: '#/components/schemas/AuditInfoDto'
        activeInfo:
          $ref: '#/components/schemas/ActiveInfoDto'
        permissions:
          type: array
          items:
            $ref: '#/components/schemas/PermissionDisplayModel'
        applications:
          type: array
          items:
            $ref: '#/components/schemas/ApplicationDisplayModel'
      required:
        - id
        - name
        - description
        - archiveInfo
        - auditInfo
        - activeInfo
    AddApplicationIdsDto:
      type: object
      properties:
        applicationIds:
          example:
            - f8033c9c-45c7-48e9-889e-005dcdde6cb3
          type: array
          items:
            type: string
      required:
        - applicationIds
    UpdateModuleDto:
      type: object
      properties:
        name:
          type: string
          example: string
        description:
          type: string
          example: string
      required:
        - name
    AddPermissionIdsDto:
      type: object
      properties:
        permissionIds:
          example:
            - 2b842555-fbdc-4688-8a80-b0c814136cca
          type: array
          items:
            type: string
      required:
        - permissionIds
    AddPermissionDto:
      type: object
      properties:
        name:
          type: string
          example: string
        code:
          type: string
          example: string
        description:
          type: string
          example: string | null
        moduleId:
          type: string
          example: a8d4c0a9-dab6-4e74-9139-dff21f79082a
      required:
        - name
        - code
        - moduleId
    UpdatePermissionDto:
      type: object
      properties:
        name:
          type: string
          example: string
        description:
          type: string
          example: string
        code:
          type: string
          example: string
        moduleId:
          type: string
          example: 2d775bd9-e5d3-45df-8562-0ebcc6f623ca
      required:
        - name
        - code
        - moduleId
    AddPolicyDto:
      type: object
      properties:
        name:
          type: string
          example: string
        code:
          type: string
          example: string
        description:
          type: string
          example: string | null
        organizationId:
          type: string
          example: 1a69627d-ba12-4efe-a999-ccd392dad22f
        permissions:
          example:
            - d9b9f2dc-f688-491e-8224-c0bd82cca79f
          type: array
          items:
            type: string
        internalUseOnly:
          type: boolean
          example: false
      required:
        - name
        - code
    PolicyDisplayModel:
      type: object
      properties:
        id:
          type: string
          example: e160a352-6a2b-4e25-9d63-b1183e1ad29b
        name:
          type: string
          example: string
        code:
          type: string
          example: string
        description:
          type: string
          example: string
        IsInUse:
          type: boolean
          example: false
        internalUseOnly:
          type: boolean
          example: false
        archiveInfo:
          $ref: '#/components/schemas/ArchiveInfoDto'
        auditInfo:
          $ref: '#/components/schemas/AuditInfoDto'
        activeInfo:
          $ref: '#/components/schemas/ActiveInfoDto'
        organization:
          $ref: '#/components/schemas/OrganizationDisplayModel'
        permissions:
          type: array
          items:
            $ref: '#/components/schemas/PermissionDisplayModel'
      required:
        - id
        - name
        - code
        - description
        - IsInUse
        - archiveInfo
        - auditInfo
        - activeInfo
    UpdatePolicyDto:
      type: object
      properties:
        name:
          type: string
          example: string
        description:
          type: string
          example: string
        code:
          type: string
          example: string
        permissions:
          example:
            - 4cd47b53-9987-4d1d-8860-1b335f776294
          type: array
          items:
            type: string
        organizationId:
          type: string
          example: b0dea9a1-5c34-458c-8b80-3642104ee2c9
        internalUseOnly:
          type: boolean
          example: false
      required:
        - name
        - code
        - internalUseOnly
    PermissionCacheDisplayModel:
      type: object
      properties:
        accountId:
          type: string
          example: 31eb20df-c6af-488f-ba6a-17a11a2bd45f
        recacheFl:
          type: boolean
          example: string
        cacheObject:
          type: object
          example: {}
        cognitoUserId:
          type: string
          example: 5192f9b1-b946-4ede-8727-19e2d481f4eb
      required:
        - accountId
        - recacheFl
        - cacheObject
        - cognitoUserId
    OrganizationSetupStatusDto:
      type: object
      properties:
        item:
          type: string
          example: string
        message:
          type: string
          example: string
        complete:
          type: boolean
          example: true
      required:
        - item
        - message
        - complete
    UpdateOrganizationMetadata:
      type: object
      properties:
        integrationMetadata:
          type: object
          example:
            key: value
      required:
        - integrationMetadata
    UpdateAddressDto:
      type: object
      properties:
        addressLine1:
          type: string
          example: string
        addressLine2:
          type: string
          example: string
        stateProvinceCode:
          type: string
          example: string
        city:
          type: string
          example: string
        postalCode:
          type: string
          example: string
        countryCode:
          type: string
          example: string
        regionCode:
          type: string
          example: string
          enum:
            - US
            - EU
        addressType:
          type: number
          example: 3
    UpdateOrganizationDto:
      type: object
      properties:
        type:
          type: string
          enum:
            - '1'
            - '2'
        hcoXrefId:
          type: string
          example: string
        businessName:
          type: string
          example: string
        displayName:
          type: string
          example: string
        integrationMetadata:
          type: object
          example:
            key: value
        originationSource:
          type: string
          example: string
        onBoardingStatus:
          type: object
          example: 1
        organizationStatus:
          type: object
          example: 1
        rrmsSiteGroupId:
          type: string
          example: string
        signOnDate:
          format: date-time
          type: string
          example: '2026-03-04T17:27:05.257Z'
        timezoneId:
          type: string
          example: string
        actionPlanCode:
          type: string
          example: string
        customerId:
          type: string
          example: string
        vendorProfileIds:
          description: List of Vendor Profile IDs
          example:
            - uuid1
            - uuid2
          type: array
          items:
            type: string
      required:
        - type
        - businessName
        - displayName
        - originationSource
        - onBoardingStatus
        - organizationStatus
    AddMetadataDto:
      type: object
      properties:
        key:
          type: string
          example: string
        value:
          type: string
          example: string
      required:
        - key
        - value
    IntegrationMetadataDto:
      type: object
      properties:
        key:
          type: object
          example:
            key1: value1
            key2: value2
    AddAddressDto:
      type: object
      properties:
        addressLine1:
          type: string
          example: 252 Lomas Santa Fe Dr Suite 290
        addressLine2:
          type: string
          example: Behind times square garden
        stateProvinceCode:
          type: string
          example: AL
        city:
          type: string
          example: San Diego
        postalCode:
          type: string
          example: '92075'
        countryCode:
          type: string
          example: US
        regionCode:
          type: string
          enum:
            - US
            - EU
        addressType:
          type: number
          example: 1
      required:
        - addressType
    AddPhoneNumberDto:
      type: object
      properties:
        extension:
          type: string
          example: string
        phoneNumber:
          type: string
          example: string
        phoneType:
          type: number
          example: 1
      required:
        - phoneType
    AddOrganizationDto:
      type: object
      properties:
        legacyIdentifier:
          type: string
          example: ae23fba4-f740-4d74-bbd6-80beee24f8f2
        parentId:
          type: string
          example: 5a1bc4c5-520f-4637-acac-99412fd97509
        type:
          type: string
          enum:
            - '1'
            - '2'
        hcoXrefId:
          type: string
          example: string
        businessName:
          type: string
          example: string
        displayName:
          type: string
          example: string
        integrationMetadata:
          $ref: '#/components/schemas/IntegrationMetadataDto'
        addresses:
          type: array
          items:
            $ref: '#/components/schemas/AddAddressDto'
        phoneNumbers:
          type: array
          items:
            $ref: '#/components/schemas/AddPhoneNumberDto'
        onBoardingPartnerId:
          type: string
          example: 7bfbe222-e8db-4305-86ee-38eddc7df552
          deprecated: true
        originationSource:
          type: string
          enum:
            - CRM
            - ADDI
        onBoardingStatus:
          type: number
          default: 1
          description: |2-

                    status: 1 indicates "Not Started",
                    status: 2 indicates "Welcome Call",
                    status: 3 indicates "Partner Education",
                    status: 4 indicates "Completed",
                
        organizationStatus:
          type: number
          default: 1
          description: |2-

                    status: 1 indicates "Contracted",
                    status: 2 indicates "Active",
                    status: 3 indicates "Suspended",
                    status: 4 indicates "Separated"
                
        rrmsSiteGroupId:
          type: string
          example: string
        signOnDate:
          format: date-time
          type: string
          example: '2026-03-04T17:27:05.253Z'
        timezoneId:
          type: string
          example: string
        actionPlanCode:
          type: string
          example: '11011'
        vendorProfileIds:
          example:
            - e596d9f2-0642-4575-897a-8cdb9c18c882
          type: array
          items:
            type: string
      required:
        - businessName
        - displayName
        - originationSource
    AddTiersDto:
      type: object
      properties:
        qty:
          type: number
          example: 0
        bonus:
          type: number
          example: 0
      required:
        - qty
        - bonus
    SuccessLadderBonusDisplayModel:
      type: object
      properties:
        id:
          type: string
          example: ab99620b-731b-4794-abd1-b70e81c4eb18
        title:
          type: string
          example: string
        description:
          type: string
          example: string
        currencyCode:
          type: string
          example: string
        tiers:
          type: array
          items:
            $ref: '#/components/schemas/AddTiersDto'
        auditInfo:
          $ref: '#/components/schemas/AuditInfoDto'
      required:
        - id
        - title
        - currencyCode
        - tiers
        - auditInfo
    PartnerTypeDisplayModel:
      type: object
      properties:
        id:
          type: string
          example: 8be4fe96-d2be-4b68-8b7d-c845e73e54ed
        name:
          type: string
          example: string
        code:
          type: string
          example: string
        description:
          type: string
          example: string
        apptivoValueId:
          type: string
          example: string
        hcoCommission:
          type: number
          example: 0
        activeInfo:
          $ref: '#/components/schemas/ActiveInfoDto'
        directPayout:
          type: boolean
          example: false
        successLadderBonus:
          $ref: '#/components/schemas/SuccessLadderBonusDisplayModel'
        hasSLB:
          type: boolean
          example: true
      required:
        - id
        - name
        - code
        - activeInfo
        - directPayout
    PersonDisplayModel:
      type: object
      properties:
        id:
          type: string
          example: a01c8f0c-95a1-4e94-b6c7-5074f95cd745
        salutation:
          type: number
          example: '1'
        firstName:
          type: string
          example: string
        lastName:
          type: string
          example: string
        suffix:
          type: string
          example: string
        emailAddress:
          type: string
          example: string
        party:
          $ref: '#/components/schemas/PartyDisplayModel'
      required:
        - id
        - salutation
        - firstName
        - lastName
        - suffix
        - emailAddress
        - party
    SubscriberDisplayModel:
      type: object
      properties:
        id:
          type: string
          example: 490141a1-c325-400d-8d2d-abef284fff92
        policies:
          example:
            - f014cbad-ad6b-4357-840c-bd29152d8b11
          type: array
          items:
            type: string
        person:
          $ref: '#/components/schemas/PersonDisplayModel'
        archiveInfo:
          $ref: '#/components/schemas/ArchiveInfoDto'
        auditInfo:
          $ref: '#/components/schemas/AuditInfoDto'
        activeInfo:
          $ref: '#/components/schemas/ActiveInfoDto'
        organizationId:
          type: string
          example: d2b1461e-ff01-42ae-8456-ee1544ae2910
        organization:
          $ref: '#/components/schemas/OrganizationDisplayModel'
        integrationMetadata:
          type: object
          example:
            key: value
        status:
          type: number
          example: 1
        lastStatusChangedAt:
          format: date-time
          type: string
          example: string
        nonPERS:
          type: boolean
          default: false
        actionPlanCode:
          type: string
          example: string
        contactId:
          type: string
          example: string
        mrnNumber:
          type: string
          example: string
        onboardingPartner:
          oneOf:
            - $ref: '#/components/schemas/PartnerOrganizationDisplayModel'
            - type: string
          deprecated: true
        hasTransferHistory:
          type: boolean
      required:
        - id
        - policies
        - person
        - archiveInfo
        - auditInfo
        - activeInfo
        - status
    ChildPartnerDisplayModel:
      type: object
      properties:
        id:
          type: string
          example: e9deace7-a39d-45eb-9550-cdb20ebcf717
        partnerType:
          $ref: '#/components/schemas/PartnerTypeDisplayModel'
        party:
          $ref: '#/components/schemas/PartyDisplayModel'
        allowSubscriberAccess:
          type: boolean
          example: false
        subscribers:
          type: array
          items:
            $ref: '#/components/schemas/SubscriberDisplayModel'
        person:
          $ref: '#/components/schemas/PersonDisplayModel'
        organization:
          $ref: '#/components/schemas/OrganizationDisplayModel'
        integrationMetadata:
          type: object
          example:
            key: value
        signOnDate:
          format: date-time
          type: string
          example: '2026-03-04T17:27:05.458Z'
        customerId:
          type: string
          example: string
      required:
        - id
        - partnerType
    PartnerDisplayModel:
      type: object
      properties:
        id:
          type: string
          example: e9deace7-a39d-45eb-9550-cdb20ebcf717
        partnerType:
          $ref: '#/components/schemas/PartnerTypeDisplayModel'
        party:
          $ref: '#/components/schemas/PartyDisplayModel'
        allowSubscriberAccess:
          type: boolean
          example: false
        subscribers:
          type: array
          items:
            $ref: '#/components/schemas/SubscriberDisplayModel'
        person:
          $ref: '#/components/schemas/PersonDisplayModel'
        organization:
          $ref: '#/components/schemas/OrganizationDisplayModel'
        integrationMetadata:
          type: object
          example:
            key: value
        signOnDate:
          format: date-time
          type: string
          example: '2026-03-04T17:27:05.458Z'
        customerId:
          type: string
          example: string
        parentPartner:
          $ref: '#/components/schemas/ChildPartnerDisplayModel'
        subsidiaries:
          type: array
          items:
            $ref: '#/components/schemas/ChildPartnerDisplayModel'
      required:
        - id
        - partnerType
    OrganizationOnBoardingDisplayModel:
      type: object
      properties:
        id:
          type: string
          example: 854e27cb-7ddd-4c0f-950d-1d60bc9e0cb9
        type:
          type: string
          example: string
        status:
          type: string
          example: string
        hcoXrefId:
          type: string
          example: string
        businessName:
          type: string
          example: string
        displayName:
          type: string
          example: string
        integrationMetadata:
          type: object
          example:
            key: value
        nodes:
          example:
            - a60dbf9d-2963-4256-9019-94296a81cb1c
          type: array
          items:
            type: string
        ancestryNodes:
          example:
            - 289fe665-e0aa-4eab-9440-cdbfbd9afdee
          type: array
          items:
            type: string
        originationSource:
          type: string
          example: string
        onBoardingStatus:
          type: number
          example: 1
        organizationStatus:
          type: number
          example: 1
        rrmsSiteGroupId:
          type: string
          example: 974ad49c-2a0c-4a88-b25a-5852047b3407
        timezoneId:
          type: string
          example: string
        archiveInfo:
          $ref: '#/components/schemas/ArchiveInfoDto'
        auditInfo:
          $ref: '#/components/schemas/AuditInfoDto'
        activeInfo:
          $ref: '#/components/schemas/ActiveInfoDto'
        party:
          $ref: '#/components/schemas/PartyDisplayModel'
        signOnDate:
          format: date-time
          type: string
          example: '2026-03-04T17:27:05.269Z'
        actionPlanCode:
          type: string
          example: string
        customerId:
          type: string
          example: string
        partnerCriteria:
          $ref: '#/components/schemas/PartnerCriteriaDisplayModel'
        vendorProfiles:
          oneOf:
            - $ref: '#/components/schemas/VendorProfilePreviewModel'
            - type: string
        onBoardingPartner:
          $ref: '#/components/schemas/PartnerDisplayModel'
      required:
        - id
        - type
        - businessName
        - displayName
        - nodes
        - ancestryNodes
        - originationSource
        - onBoardingStatus
        - organizationStatus
        - archiveInfo
        - auditInfo
        - activeInfo
    AddAddressesDto:
      type: object
      properties:
        addresses:
          type: array
          items:
            $ref: '#/components/schemas/AddAddressDto'
      required:
        - addresses
    OrganizationType:
      type: object
      properties:
        id:
          type: number
          example: '1'
        name:
          type: string
          example: string
        code:
          type: string
          example: string
        description:
          type: string
          example: string
      required:
        - id
        - name
        - code
        - description
    OrganizationStatusType:
      type: object
      properties:
        id:
          type: number
          example: '1'
        name:
          type: string
          example: name
        code:
          type: string
          example: code
      required:
        - id
        - name
        - code
    SalutationType:
      type: object
      properties:
        id:
          type: number
          example: '1'
        name:
          type: string
          example: name
        code:
          type: string
          example: code
      required:
        - id
        - name
        - code
    AddressType:
      type: object
      properties:
        id:
          type: number
          example: 1
        name:
          type: string
          example: string
        code:
          type: string
          example: string
        description:
          type: string
          example: string
      required:
        - id
        - name
        - code
        - description
    StaffMemberType:
      type: object
      properties:
        id:
          type: number
          example: '1'
        name:
          type: string
          example: string
        code:
          type: string
          example: string
        description:
          type: string
          example: string
      required:
        - id
        - name
        - code
        - description
    Product:
      type: object
      properties:
        id:
          type: string
          example: 15ef30b6-6b89-4d51-9032-f5192e4b073d
        name:
          type: string
          example: string
      required:
        - id
        - name
    TimezoneTypeDisplayModel:
      type: object
      properties:
        id:
          type: string
          example: string
        displayName:
          type: string
          example: string
        abbreviation:
          type: string
          example: string
      required:
        - id
        - displayName
        - abbreviation
    ApptivoPayloadType:
      type: object
      properties:
        name:
          type: string
          example: string
        code:
          type: string
          example: string
      required:
        - name
        - code
    PhoneTypes:
      type: object
      properties:
        title:
          type: string
          example: string
        code:
          type: number
      required:
        - title
        - code
    RegionCodes:
      type: object
      properties:
        name:
          type: string
          example: string
        code:
          type: string
          example: string
      required:
        - name
        - code
    IsoCodesDto:
      type: object
      properties:
        name:
          type: string
          example: string
        isoCode:
          type: string
          example: string
      required:
        - name
        - isoCode
    seedBloodTypeDto:
      type: object
      properties:
        type:
          type: string
          example: O-
      required:
        - type
    SubscriberStatusType:
      type: object
      properties:
        id:
          type: number
          example: 1
        name:
          type: string
          example: name
      required:
        - id
        - name
    StatisticsTotalCount:
      type: object
      properties:
        total:
          type: number
          example: 0
      required:
        - total
    MemberStatisticsDisplayModel:
      type: object
      properties:
        organizations:
          $ref: '#/components/schemas/StatisticsTotalCount'
        subscribers:
          $ref: '#/components/schemas/StatisticsTotalCount'
        partners:
          $ref: '#/components/schemas/StatisticsTotalCount'
      required:
        - organizations
        - subscribers
        - partners
    OrganizationStatisticsDisplayModel:
      type: object
      properties:
        organizations:
          $ref: '#/components/schemas/StatisticsTotalCount'
        subscribers:
          $ref: '#/components/schemas/StatisticsTotalCount'
        staffMembers:
          $ref: '#/components/schemas/StatisticsTotalCount'
      required:
        - organizations
        - subscribers
        - staffMembers
    SetOrganizationTypeResponseDto:
      type: object
      properties:
        id:
          type: string
          example: uuid
        displayName:
          type: string
          example: displayName
        status:
          type: string
          example: active
        originationSource:
          type: string
          example: string
        customerId:
          type: string
          example: string
        orgType:
          type: string
          example: '1'
      required:
        - id
        - displayName
        - status
        - originationSource
        - customerId
        - orgType
    SetOrganizationTypeResponseWrapperDto:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/SetOrganizationTypeResponseDto'
      required:
        - items
    UserOrganizationInfo:
      type: object
      properties:
        id:
          type: string
          example: 854e27cb-7ddd-4c0f-950d-1d60bc9e0cb9
        businessName:
          type: string
          example: string
        displayName:
          type: string
          example: string
      required:
        - id
        - businessName
        - displayName
    ListUsersDisplayModel:
      type: object
      properties:
        email:
          type: string
          example: string
        roles:
          type: array
          items:
            type: string
            enum:
              - ecg-admin
              - subscriber
              - org-admin
              - partner
        person:
          type: string
          example: 9d6fcaee-3680-4fd0-a0ad-ed698592540e
        firstName:
          type: string
          example: string
        lastName:
          type: string
          example: string
        organization:
          type: string
          example: 31e39771-49eb-4905-a325-593089be960c
          description: >-
            This node will be removed soon, it is kept for supporting backward
            compatibility
        organizationInfo:
          $ref: '#/components/schemas/UserOrganizationInfo'
        suffix:
          type: string
          example: Jr
        salutation:
          type: number
          example: 1
        auditInfo:
          $ref: '#/components/schemas/AuditInfoDto'
      required:
        - email
        - roles
        - person
        - firstName
        - lastName
        - auditInfo
    UserPermissionDisplayModel:
      type: object
      properties:
        id:
          type: string
          example: 42ea0bac-6634-42b4-bde2-64ff16b8dff6
        code:
          type: string
          example: string
      required:
        - id
        - code
    UserRoleDisplayModel:
      type: object
      properties:
        organizationId:
          type: string
          example: e271af31-22ff-449a-994e-e994079004e4
          description: 'OrganizationId will be returned for roles: subscriber,org-admin'
        active:
          type: boolean
          example: true
        permissions:
          type: array
          items:
            $ref: '#/components/schemas/UserPermissionDisplayModel'
    AccountRolesDisplayModel:
      type: object
      properties:
        email:
          type: string
          example: string
        cognitoUserId:
          type: string
          example: 9dc4aac5-111b-431e-bf7c-bf726f2cc2f7
        person:
          $ref: '#/components/schemas/PersonDisplayModel'
        auditInfo:
          $ref: '#/components/schemas/AuditInfoDto'
        roles:
          type: array
          items:
            type: string
            enum:
              - ecg-admin
              - subscriber
              - org-admin
              - partner
        subscriber:
          $ref: '#/components/schemas/UserRoleDisplayModel'
        ecgAdmin:
          $ref: '#/components/schemas/UserRoleDisplayModel'
        orgAdmin:
          $ref: '#/components/schemas/UserRoleDisplayModel'
        partner:
          $ref: '#/components/schemas/UserRoleDisplayModel'
      required:
        - email
        - cognitoUserId
        - auditInfo
        - roles
    AddEmailDto:
      type: object
      properties:
        email:
          type: string
          example: string@test.com
      required:
        - email
    UpdatePersonDto:
      type: object
      properties:
        firstName:
          type: string
          example: string
        lastName:
          type: string
          example: string
        salutation:
          type: number
          example: 1
        suffix:
          type: string
          example: string
        contactEmailAddress:
          type: string
          example: string
      required:
        - firstName
        - lastName
    ResetPasswordDto:
      type: object
      properties:
        password:
          type: string
          example: string
        isAutoGenerated:
          type: boolean
          example: true
      required:
        - isAutoGenerated
    AddAccountDto:
      type: object
      properties:
        email:
          type: string
          example: string@gmail.com
        password:
          type: string
          example: string
        isAutoGenerated:
          type: boolean
          example: true
      required:
        - email
        - isAutoGenerated
    AddPersonDto:
      type: object
      properties:
        salutation:
          type: number
          example: 1
        firstName:
          type: string
          example: string
        lastName:
          type: string
          example: string
        suffix:
          type: string
          example: string
        contactEmailAddress:
          type: string
          example: string
      required:
        - firstName
        - lastName
    CreatePersonDto:
      type: object
      properties:
        account:
          $ref: '#/components/schemas/AddAccountDto'
        person:
          $ref: '#/components/schemas/AddPersonDto'
        addresses:
          type: array
          items:
            $ref: '#/components/schemas/AddAddressDto'
        phoneNumbers:
          type: array
          items:
            $ref: '#/components/schemas/AddPhoneNumberDto'
      required:
        - person
        - phoneNumbers
    AccountDisplayModel:
      type: object
      properties:
        email:
          type: string
          example: string
        cognitoUserId:
          type: string
          example: 9dc4aac5-111b-431e-bf7c-bf726f2cc2f7
        person:
          $ref: '#/components/schemas/PersonDisplayModel'
        auditInfo:
          $ref: '#/components/schemas/AuditInfoDto'
      required:
        - email
        - cognitoUserId
        - auditInfo
    UpdatePasswordDto:
      type: object
      properties:
        previousPassword:
          type: string
          example: string
        proposedPassword:
          type: string
          example: string
        accessToken:
          type: string
          example: string
      required:
        - previousPassword
        - proposedPassword
        - accessToken
    ReSyncPersonBatchDto:
      type: object
      properties:
        ids:
          description: Array of 100 PersonIds or SubjectIds(Bearer Token Sub)
          type: array
          items:
            type: string
      required:
        - ids
    UpdateStaffMemberDto:
      type: object
      properties:
        legacyIdentifier:
          type: string
          example: e0b9834d-7c5f-439f-8fad-b87857e4d403
        policies:
          example:
            - 300f8890-05ab-4e36-9ac3-442a8d6b950d
          type: array
          items:
            type: string
        customPermissions:
          example:
            - 616bfde6-0761-44aa-a2fb-21412ea0d0d2
          type: array
          items:
            type: string
        isProvider:
          type: boolean
          example: true
        memberType:
          type: number
          example: 1
        firstName:
          type: string
          example: string
        lastName:
          type: string
          example: string
        salutation:
          type: number
          example: 1
        suffix:
          type: string
          example: string
      required:
        - isProvider
        - memberType
        - firstName
        - lastName
    StaffMemberDisplayModel:
      type: object
      properties:
        id:
          type: string
          example: 381ea99d-aab3-4609-b5b5-4d9a3dee4d03
        isProvider:
          type: boolean
          example: 'true'
        memberType:
          type: number
          example: 1
        person:
          $ref: '#/components/schemas/PersonDisplayModel'
        organization:
          oneOf:
            - $ref: '#/components/schemas/OrganizationDisplayModel'
            - type: string
        policies:
          example:
            - 2b39a1f7-6894-48c3-bf48-1329c18226a5
          type: array
          items:
            type: string
        customPermissions:
          example:
            - 667f8012-e025-42b5-ac88-b15724447eb6
          type: array
          items:
            type: string
        archiveInfo:
          $ref: '#/components/schemas/ArchiveInfoDto'
        auditInfo:
          $ref: '#/components/schemas/AuditInfoDto'
        activeInfo:
          $ref: '#/components/schemas/ActiveInfoDto'
      required:
        - id
        - isProvider
        - memberType
        - person
        - organization
        - archiveInfo
        - auditInfo
        - activeInfo
    AddStaffMemberDto:
      type: object
      properties:
        legacyIdentifier:
          type: string
          example: 5e663695-c819-4fc6-9269-fc8505d57ad0
        isProvider:
          type: boolean
          example: true
        policies:
          example:
            - 2fce1ab2-244d-42cf-bd70-61d8dbd436d2
          type: array
          items:
            type: string
        memberType:
          type: number
          example: 1
        personId:
          type: string
          example: 7abd244a-5eae-45f3-ac9c-41830cb8273d
        customPermissions:
          example:
            - f7ab1bce-c85f-42a9-88b2-ac6953e609de
          type: array
          items:
            type: string
      required:
        - isProvider
        - memberType
        - personId
    OrganizationHistoryActivityDisplayModel:
      type: object
      properties:
        id:
          type: string
          example: 0049b125-3575-40d1-ac2a-fb67a482b773
        sourceParentOrg:
          oneOf:
            - $ref: '#/components/schemas/OrganizationDisplayModel'
            - type: string
        targetParentOrg:
          oneOf:
            - $ref: '#/components/schemas/OrganizationDisplayModel'
            - type: string
        organization:
          oneOf:
            - $ref: '#/components/schemas/OrganizationDisplayModel'
            - type: string
        targetOrg:
          oneOf:
            - $ref: '#/components/schemas/OrganizationDisplayModel'
            - type: string
        transferType:
          type: string
          enum:
            - parent-to-parent
            - standalone-to-parent
            - parent-to-standalone
        effectiveFrom:
          format: date-time
          type: string
          example: '2026-03-04T17:27:06.368Z'
        effectiveTo:
          format: date-time
          type: string
          example: '2026-03-04T17:27:06.368Z'
        maxRetryCount:
          type: number
          description: >-
            Number of total retry count if organization transfer process fails.
            Default: 3
          example: 3
        auditInfo:
          allOf:
            - $ref: '#/components/schemas/AuditInfoDto'
      required:
        - id
        - transferType
        - effectiveFrom
        - auditInfo
    TransferOrganizationDto:
      type: object
      properties:
        targetParentOrgId:
          type: string
          example: 5dc93f9b-4bc5-49f4-aa0e-5ea80e1f7503
        transferType:
          enum:
            - parent-to-parent
            - standalone-to-parent
            - parent-to-standalone
          type: string
        scheduledAt:
          type: string
          example: '2026-03-04T17:27:06.367Z'
        maxRetryCount:
          type: number
          description: >-
            Number of total retry count if organization transfer process fails.
            Default: 3
          example: 3
      required:
        - transferType
    ImpactedSubscriberCountDto:
      type: object
      properties:
        totalImpacted:
          type: number
          description: Total number of impacted subscribers
        activeSubscribers:
          type: number
          description: Number of active subscribers impacted
        inactiveSubscribers:
          type: number
          description: Number of inactive subscribers impacted
      required:
        - totalImpacted
        - activeSubscribers
        - inactiveSubscribers
    ImpactedSubscriberCountDisplayModel:
      type: object
      properties:
        impactedSubscriberCount:
          description: Details of impacted subscribers
          allOf:
            - $ref: '#/components/schemas/ImpactedSubscriberCountDto'
      required:
        - impactedSubscriberCount
    UpdateSubscriberAccessDto:
      type: object
      properties:
        policies:
          example:
            - 57714166-57f2-4ce0-a3c4-71f9a74c79c5
          type: array
          items:
            type: string
        blocked:
          type: boolean
          example: false
        legacyIdentifier:
          type: string
          example: ce6d5d1e-0002-4893-8fc6-c7f9b38fc978
      required:
        - blocked
        - legacyIdentifier
    UpdateSubscriberDto:
      type: object
      properties:
        primary:
          type: boolean
          example: true
        status:
          type: number
          example: 1
        firstName:
          type: string
          example: string
        lastName:
          type: string
          example: string
        salutation:
          type: number
          example: 1
        contactEmailAddress:
          type: string
          example: string
        suffix:
          type: string
          example: string
        legacyIdentifier:
          type: string
          example: 5a80f45b-7887-48dc-9c18-d858f1a7a3d3
        policies:
          example:
            - 395399eb-c669-4766-9c55-60c012b220ed
          type: array
          items:
            type: string
        nonPERS:
          type: boolean
          default: false
        actionPlanCode:
          type: string
          example: string
        contactId:
          type: string
          example: string
        organizationId:
          type: string
          example: a339fba8-a293-4dd1-ac0b-38d8055236b0
      required:
        - primary
        - status
        - firstName
        - lastName
        - contactEmailAddress
    UpdateSubscriberMetadataDto:
      type: object
      properties:
        integrationMetadata:
          type: object
          example:
            key: value
      required:
        - integrationMetadata
    AddPolicyGroupIdsDto:
      type: object
      properties:
        policyGroupIds:
          example:
            - adf79893-93b1-4eb1-aaec-c9e96f5d305f
          type: array
          items:
            type: string
      required:
        - policyGroupIds
    SubscriberAccessDisplayModel:
      type: object
      properties:
        id:
          type: string
          example: a975e386-d217-490e-80a6-272a4c58afb2
        blocked:
          type: boolean
          example: false
        policies:
          example:
            - 8d54144a-a169-4d4c-96f0-58b1ff7587cb
          type: array
          items:
            type: string
        subscriber:
          type: string
          example: 7ea620f8-78bd-4463-b0c0-948e06de28df
        party:
          $ref: '#/components/schemas/PartyDisplayModel'
        archiveInfo:
          $ref: '#/components/schemas/ArchiveInfoDto'
        auditInfo:
          $ref: '#/components/schemas/AuditInfoDto'
        activeInfo:
          $ref: '#/components/schemas/ActiveInfoDto'
      required:
        - id
        - blocked
        - policies
        - subscriber
        - party
        - archiveInfo
        - auditInfo
        - activeInfo
    AddSubscriberAccessDto:
      type: object
      properties:
        legacyIdentifier:
          type: string
          example: 1192ed87-ed23-4815-ba1a-5c0b340e49a8
        blocked:
          type: boolean
          example: false
        policies:
          example:
            - 6e8382df-270c-413f-bd34-d63125904113
          type: array
          items:
            type: string
        addresses:
          type: array
          items:
            $ref: '#/components/schemas/AddAddressDto'
        phoneNumbers:
          type: array
          items:
            $ref: '#/components/schemas/AddPhoneNumberDto'
      required:
        - blocked
        - addresses
        - phoneNumbers
    AddSubscriberDto:
      type: object
      properties:
        organizationId:
          type: string
          example: 1703702d-e249-49c6-a58d-715234abbff7
        legacyIdentifier:
          type: string
          example: 33844314-bc1a-44b2-adf5-a411353a3db1
        account:
          $ref: '#/components/schemas/AddAccountDto'
        person:
          $ref: '#/components/schemas/AddPersonDto'
        status:
          type: number
          default: 2
          description: |2-

                    status: 1 indicates "Under Review",
                    status: 2 indicates "Active",
                    status: 3 indicates "On Hold",
                    status: 4 indicates "Cancelled",
                    status: 5 indicates "Closed",
                    status: 6 indicates "Created",
                    status: 8 indicates "Away",
                
        primary:
          type: boolean
          default: true
        partnerId:
          type: string
          example: 46688fb5-af55-4b2f-9331-0be010a9ca7c
          deprecated: true
        integrationMetadata:
          $ref: '#/components/schemas/IntegrationMetadataDto'
        nonPERS:
          type: boolean
          default: false
        actionPlanCode:
          type: string
          example: string
      required:
        - person
    AddSubscriberByIdDto:
      type: object
      properties:
        organizationId:
          type: string
          example: 1703702d-e249-49c6-a58d-715234abbff7
        legacyIdentifier:
          type: string
          example: 33844314-bc1a-44b2-adf5-a411353a3db1
        status:
          type: number
          default: 2
          description: |2-

                    status: 1 indicates "Under Review",
                    status: 2 indicates "Active",
                    status: 3 indicates "On Hold",
                    status: 4 indicates "Cancelled",
                    status: 5 indicates "Closed",
                    status: 6 indicates "Created",
                    status: 8 indicates "Away",
                
        primary:
          type: boolean
          default: true
        partnerId:
          type: string
          example: 46688fb5-af55-4b2f-9331-0be010a9ca7c
          deprecated: true
        integrationMetadata:
          $ref: '#/components/schemas/IntegrationMetadataDto'
        nonPERS:
          type: boolean
          default: false
        actionPlanCode:
          type: string
          example: string
    SubscriberByIdDisplayModel:
      type: object
      properties:
        id:
          type: string
          example: 490141a1-c325-400d-8d2d-abef284fff92
        policies:
          example:
            - f014cbad-ad6b-4357-840c-bd29152d8b11
          type: array
          items:
            type: string
        person:
          $ref: '#/components/schemas/PersonDisplayModel'
        archiveInfo:
          $ref: '#/components/schemas/ArchiveInfoDto'
        auditInfo:
          $ref: '#/components/schemas/AuditInfoDto'
        activeInfo:
          $ref: '#/components/schemas/ActiveInfoDto'
        organizationId:
          type: string
          example: d2b1461e-ff01-42ae-8456-ee1544ae2910
        organization:
          $ref: '#/components/schemas/OrganizationDisplayModel'
        integrationMetadata:
          type: object
          example:
            key: value
        status:
          type: number
          example: 1
        lastStatusChangedAt:
          format: date-time
          type: string
          example: string
        nonPERS:
          type: boolean
          default: false
        actionPlanCode:
          type: string
          example: string
        contactId:
          type: string
          example: string
        mrnNumber:
          type: string
          example: string
        onboardingPartner:
          oneOf:
            - $ref: '#/components/schemas/PartnerOrganizationDisplayModel'
            - type: string
          deprecated: true
        hasTransferHistory:
          type: boolean
        account:
          $ref: '#/components/schemas/AccountDisplayModel'
        products:
          type: string
          enum:
            - addison
      required:
        - id
        - policies
        - person
        - archiveInfo
        - auditInfo
        - activeInfo
        - status
    OrganizationDto:
      type: object
      properties:
        id:
          type: string
          description: Organization Id
          example: 3fe9918e-f247-4617-8bfc-e41a9ba7efff
      required:
        - id
    PartnerDto:
      type: object
      properties:
        id:
          type: string
          description: Partner Id
          example: 3fe9918e-f247-4617-8bfc-e41a9ba7efff
      required:
        - id
    OrderDto:
      type: object
      properties:
        id:
          type: string
          description: Order Id
          example: 3fe9918e-f247-4617-8bfc-e41a9ba7efff
        confirmDate:
          type: string
          example: '2021-05-14T19:25:29.693Z'
      required:
        - id
        - confirmDate
    SourceInformationDto:
      type: object
      properties:
        creationSource:
          type: string
          example: ADDI
          enum:
            - ADDI
            - E-COMM
            - CRM
        organization:
          description: '@type OrganizationDto'
          allOf:
            - $ref: '#/components/schemas/OrganizationDto'
        partner:
          description: '@type PartnerDto'
          allOf:
            - $ref: '#/components/schemas/PartnerDto'
        order:
          description: '@type OrderDto'
          allOf:
            - $ref: '#/components/schemas/OrderDto'
      required:
        - creationSource
    PersonalInformationDto:
      type: object
      properties:
        metadata:
          type: object
          example:
            key: value
        locale:
          type: string
          example: en-US
        timeZone:
          type: string
          example: Africa/Abidjan
        preferredLanguage:
          type: string
          example: en-US
        salutation:
          type: number
          example: '1'
        suffix:
          type: string
          example: PhD
        nickName:
          type: string
          example: Jess
        dob:
          type: string
          example: 05/14/1980
        gender:
          type: string
          example: Female
          enum:
            - Female
            - Male
            - Other
            - Non-Binary
    HealthcareInformationDto:
      type: object
      properties:
        physicianName:
          type: string
        physicianPhone:
          type: string
        preferredHospital:
          type: string
    CreateSubscriberDto:
      type: object
      properties:
        type:
          type: string
          description: Subscriber type (HCO or Private)
          example: HCO
          enum:
            - HCO
            - Private
        sourceInformation:
          description: |-
            Subscriber source information
            @type SourceInformationDto
          allOf:
            - $ref: '#/components/schemas/SourceInformationDto'
        organizationId:
          type: string
          description: Organization Id
          example: f812566c-62db-4e52-a730-80af00c28fc7
        mrnNumber:
          type: string
          description: Mrn Number
          example: 1234j
        personalInformation:
          description: |-
            Subscriber personal information
            @type PersonalInformationDto
          allOf:
            - $ref: '#/components/schemas/PersonalInformationDto'
        healthcareInformation:
          $ref: '#/components/schemas/HealthcareInformationDto'
      required:
        - type
        - sourceInformation
    PhoneNumberDto:
      type: object
      properties:
        id:
          type: string
          description: Phone number Id
          example: bd2b81ba-b4ed-11eb-ad49-00155d334221
        number:
          type: string
          description: Phone number
          example: '5055055050'
        extension:
          type: string
          description: Extension
          example: '333'
        type:
          description: Phone type (Mobile, Home, Work, or Main)
          example: 'Mobile '
          enum:
            - Mobile
            - Home
            - Work
            - Main
          type: string
      required:
        - id
        - number
        - type
    AddAddressInfoDto:
      type: object
      properties:
        addressLine1:
          type: string
          description: Address Line 1
          example: Address Line 1
        addressLine2:
          type: string
          description: Address Line 2
          example: Address Line 2
        addressLine3:
          type: string
          description: Address Line 3
          example: Address Line 3
        city:
          type: string
          description: City
          example: Las Cruces
        stateProvinceCode:
          type: string
          description: State
          example: NM
        postalCode:
          type: string
          description: Zip
          example: '88011'
        countryCode:
          type: string
          description: Country
          example: US
        addressType:
          type: number
          description: Address Type
          example: 1
      required:
        - addressLine1
        - city
        - stateProvinceCode
        - postalCode
    SubscriberAddressDto:
      type: object
      properties:
        id:
          type: string
          example: bd2b81ba-b4ed-11eb-ad49-00155d334221
        types:
          description: Address Types
          example:
            - primary
            - billing
            - shipping
          type: array
          items:
            type: string
            enum:
              - primary
              - billing
              - shipping
        address:
          description: |-
            Subscriber Address
            @type AddAddressInfoDto
          allOf:
            - $ref: '#/components/schemas/AddAddressInfoDto'
        lockBox:
          type: string
          description: Lock Box
          example: '1234'
        crossStreet:
          type: string
          description: Cross Street
          example: Main St
      required:
        - id
        - types
        - address
    SubscriberProfileDto:
      type: object
      properties:
        id:
          type: string
          example: ba8feeb4-d349-4d8b-a160-7acd18fae655
        version:
          type: string
          example: v1
        type:
          description: Subscriber Type (HCO or Private)
          example: HCO
          enum:
            - HCO
            - Private
          type: string
        sourceInformation:
          description: |-
            Subscriber source information
            @type sourceInformationDto
          allOf:
            - $ref: '#/components/schemas/SourceInformationDto'
        organizationId:
          type: string
          description: Subscriber Organization Id
          example: f812566c-62db-4e52-a730-80af00c28fc7
        mrnNumber:
          type: string
          description: Mrn Number
          example: 1234j
        personalInformation:
          description: |-
            Subscriber Personal Information
            @type PersonalInformationDto
          allOf:
            - $ref: '#/components/schemas/PersonalInformationDto'
        metadata:
          type: object
          example: '{ key: "value "}'
        status:
          description: Subscriber Profile status (Active, Archived, or Inactive)
          example: Active
          enum:
            - Active
            - Archived
            - Inactive
          type: string
        healthcareInformation:
          $ref: '#/components/schemas/HealthcareInformationDto'
        phoneNumbers:
          type: array
          items:
            $ref: '#/components/schemas/PhoneNumberDto'
        addresses:
          type: array
          items:
            $ref: '#/components/schemas/SubscriberAddressDto'
      required:
        - id
        - version
        - type
        - sourceInformation
        - status
    UpdateResponseDto:
      type: object
      properties:
        result:
          type: boolean
          example: true
      required:
        - result
    IsSubscriberCompleteResponseDto:
      type: object
      properties:
        isComplete:
          type: boolean
          description: Whether the subscriber profile is complete
          example: false
        fields:
          description: List of missing fields when the subscriber is incomplete
          example:
            - addresses
            - phoneNumbers
          type: array
          items:
            type: string
      required:
        - isComplete
    CreateSubscriberAddressDto:
      type: object
      properties:
        types:
          type: array
          description: Address Types
          example:
            - primary
            - billing
            - shipping
          items:
            type: string
            enum:
              - primary
              - billing
              - shipping
        address:
          description: '@type AddAddressInfoDto'
          allOf:
            - $ref: '#/components/schemas/AddAddressInfoDto'
        lockBox:
          type: string
          example: '1234'
        crossStreet:
          type: string
          example: Main St
      required:
        - types
        - address
    GetAddressInfoDto:
      type: object
      properties:
        id:
          type: string
          description: Address Id
          example: bd2b81ba-b4ed-11eb-ad49-00155d334221
        types:
          type: array
          description: Address Types
          example:
            - primary
            - billing
            - shipping
          items:
            type: string
            enum:
              - primary
              - billing
              - shipping
        lockbox:
          type: string
          description: lockbox
          example: '1234'
        crossStreet:
          type: string
          description: Cross Street
          example: Main St
        address:
          description: |-
            Subscriber address information
            @type AddAddressInfoDto
          allOf:
            - $ref: '#/components/schemas/AddAddressInfoDto'
      required:
        - id
        - types
        - address
    GetAddressesDto:
      type: object
      properties:
        id:
          type: string
          example: bd2b81ba-b4ed-11eb-ad49-00155d334221
        version:
          type: string
          example: v1
        addresses:
          description: |-
            Subscriber Addresses
            @type [GetAddressInfoDto]
          type: array
          items:
            $ref: '#/components/schemas/GetAddressInfoDto'
      required:
        - id
        - version
        - addresses
    GetSubscriberAddressDto:
      type: object
      properties:
        addresses:
          description: |-
            Subscriber Addresses
            @type [SubscriberAddressDto]
          type: array
          items:
            $ref: '#/components/schemas/SubscriberAddressDto'
      required:
        - addresses
    CreatePhoneNumberDto:
      type: object
      properties:
        number:
          type: string
          description: Phone number
          example: '5055055050'
        extension:
          type: string
          description: Extension
          example: '333'
        type:
          description: Phone type (Mobile, Home, Work, or Main)
          example: Mobile
          enum:
            - Mobile
            - Home
            - Work
            - Main
          type: string
      required:
        - number
        - type
    GetPhoneNumbersDto:
      type: object
      properties:
        id:
          type: string
          example: bd2b81ba-b4ed-11eb-ad49-00155d334221
        version:
          type: string
          example: v1
        phoneNumbers:
          description: '@type PhoneNumberDto'
          type: array
          items:
            $ref: '#/components/schemas/PhoneNumberDto'
      required:
        - id
        - version
        - phoneNumbers
    SubscriberCallInfoDto:
      type: object
      properties:
        title:
          type: string
          example: string
        phoneNumber:
          type: string
          example: string
        extension:
          type: string
          example: string
      required:
        - title
        - phoneNumber
    ResponsiblePartyCallInfoDto:
      type: object
      properties:
        title:
          type: string
          example: string
        phoneNumber:
          type: string
          example: string
        extension:
          type: string
          example: string
        priority:
          type: number
          example: 1
      required:
        - title
        - phoneNumber
        - priority
    SubscriberCallDisplayModel:
      type: object
      properties:
        ecgSupport:
          $ref: '#/components/schemas/SubscriberCallInfoDto'
        pocketMD:
          $ref: '#/components/schemas/SubscriberCallInfoDto'
        rrms:
          $ref: '#/components/schemas/SubscriberCallInfoDto'
        responsibleParties:
          type: array
          items:
            $ref: '#/components/schemas/ResponsiblePartyCallInfoDto'
      required:
        - ecgSupport
        - responsibleParties
    ReorderResponsiblePartyDto:
      type: object
      properties:
        responsiblePartyId:
          type: string
          example: 33ba6925-c327-46f2-b371-c3f6555bfdeb
        priority:
          type: number
          example: 1
      required:
        - responsiblePartyId
        - priority
    PersonProfileDto:
      type: object
      properties:
        firstName:
          type: string
          example: John
        lastName:
          type: string
          example: Doe
        salutation:
          type: number
          example: 1
        suffix:
          type: string
          example: Jr
        emailAddress:
          type: string
          example: jane@jdoe.com
      required:
        - firstName
        - lastName
        - salutation
        - emailAddress
    PhoneNumberInfoDto:
      type: object
      properties:
        id:
          type: string
          description: Phone number Id
          example: bd2b81ba-b4ed-11eb-ad49-00155d334221
        number:
          type: string
          description: Phone number
          example: '5055055050'
        extension:
          type: string
          description: Extension
          example: '333'
        type:
          description: Phone type (Mobile, Home, Work, or Main)
          example: 'Mobile '
          enum:
            - Mobile
            - Home
            - Work
            - Main
          type: string
      required:
        - id
        - number
        - type
    AddressInfoDto:
      type: object
      properties:
        id:
          type: string
          example: bd2b81ba-b4ed-11eb-ad49-00155d334221
        addressLine1:
          type: string
          description: Address Line 1
          example: Address Line 1
        addressLine2:
          type: string
          description: Address Line 2
          example: Address Line 2
        addressLine3:
          type: string
          description: Address Line 3
          example: Address Line 3
        city:
          type: string
          description: City
          example: Las Cruces
        stateProvinceCode:
          type: string
          description: State
          example: NM
        postalCode:
          type: string
          description: Zip
          example: '88011'
        countryCode:
          type: string
          description: Country
          example: US
        addressType:
          type: number
          description: Address Type
          example: 1
      required:
        - addressLine1
        - city
        - stateProvinceCode
        - postalCode
    ResponsiblePartyDisplayModel:
      type: object
      properties:
        id:
          type: string
          example: a3a2c2a8-d080-4b9a-9c20-f8967067b7fd
        subscriber:
          type: object
          description: '@type SubscriberProfileDto'
        relationship:
          type: string
          example: Mother
        priority:
          type: number
          example: 1
        person:
          description: '@type PersonProfileDto'
          allOf:
            - $ref: '#/components/schemas/PersonProfileDto'
        archiveInfo:
          description: '@type ArchiveInfoDto'
          allOf:
            - $ref: '#/components/schemas/ArchiveInfoDto'
        auditInfo:
          description: '@type AuditInfoDto'
          allOf:
            - $ref: '#/components/schemas/AuditInfoDto'
        activeInfo:
          description: '@type ActiveInfoDto'
          allOf:
            - $ref: '#/components/schemas/ActiveInfoDto'
        phoneNumbers:
          description: '@type PhoneNumberInfoDto'
          type: array
          items:
            $ref: '#/components/schemas/PhoneNumberInfoDto'
        addresses:
          description: '@type AddressInfoDto'
          type: array
          items:
            $ref: '#/components/schemas/AddressInfoDto'
        isKeyHolder:
          type: boolean
        isNotifiedInEmergency:
          type: boolean
        isPHIAuthorized:
          type: boolean
      required:
        - id
        - subscriber
        - relationship
        - priority
        - person
        - archiveInfo
        - auditInfo
        - activeInfo
        - phoneNumbers
        - addresses
    AddRpPersonDto:
      type: object
      properties:
        salutation:
          type: number
          example: 1
        firstName:
          type: string
          example: John
        lastName:
          type: string
          example: Doe
        suffix:
          type: string
          example: Jr
        email:
          type: string
          example: test@test.com
          format: email
      required:
        - firstName
        - lastName
    AddARpAddressDto:
      type: object
      properties:
        addressLine1:
          type: string
          example: 123 Street
        addressLine2:
          type: string
          example: 546 N Street
        stateProvinceCode:
          type: string
          example: NM
        city:
          type: string
          example: Las Cruces
        postalCode:
          type: string
          example: '88011'
        countryCode:
          type: string
          example: US
        addressType:
          type: number
          example: 1
      required:
        - addressType
    AddRpPhoneNumberDto:
      type: object
      properties:
        number:
          type: string
          description: Phone number
          example: '5055055050'
        extension:
          type: string
          description: Extension
          example: '333'
        type:
          type: string
          description: Phone type (Mobile, Home, Work, or Main)
          example: 'Mobile '
          enum:
            - Mobile
            - Home
            - Work
            - Main
      required:
        - number
        - type
    AddResponsiblePartyDto:
      type: object
      properties:
        legacyIdentifier:
          type: string
          example: b62640fe-6391-4f23-b0fd-5dc8c3b78711
        person:
          description: '@type AddRpPersonDto'
          allOf:
            - $ref: '#/components/schemas/AddRpPersonDto'
        addresses:
          description: '@type AddARpAddressDto'
          type: array
          items:
            $ref: '#/components/schemas/AddARpAddressDto'
        phoneNumbers:
          description: '@type AddRpPhoneNumberDto'
          type: array
          items:
            $ref: '#/components/schemas/AddRpPhoneNumberDto'
        relationship:
          type: string
          example: mother
        isKeyHolder:
          type: boolean
        isNotifiedInEmergency:
          type: boolean
        isPHIAuthorized:
          type: boolean
      required:
        - person
        - addresses
        - phoneNumbers
        - relationship
    UpdateResponsiblePartyDto:
      type: object
      properties:
        relationship:
          type: string
          example: Father
        firstName:
          type: string
          example: Jane
        lastName:
          type: string
          example: Doe
        salutation:
          type: number
          example: 1
        suffix:
          type: string
          example: Jr
        contactEmailAddress:
          type: string
          example: jane@jdoe.com
        priority:
          type: number
          example: 1
        isKeyHolder:
          type: boolean
        isNotifiedInEmergency:
          type: boolean
        isPHIAuthorized:
          type: boolean
    AssignBloodTypeDto:
      type: object
      properties:
        bloodType:
          type: string
          example: O-
          enum:
            - A+
            - A-
            - B+
            - B-
            - O+
            - O-
            - AB+
            - AB-
            - Unsure
        notes:
          type: string
          example: universal donor
      required:
        - bloodType
    GetBloodTypeDto:
      type: object
      properties:
        bloodType:
          example: O-
          enum:
            - A+
            - A-
            - B+
            - B-
            - O+
            - O-
            - AB+
            - AB-
            - Unsure
          type: string
        notes:
          type: string
          example: universal donor
      required:
        - bloodType
    CreateMedicalConditionDto:
      type: object
      properties:
        medicalCondtionId:
          type: string
          example: ed202f89-07f0-414d-a47b-3e4435a253b4
        notes:
          type: string
          example: medical condition notes
      required:
        - medicalCondtionId
        - notes
    MedicalConditionInfoDto:
      type: object
      properties:
        conditionId:
          type: string
          example: bd2b81ba-b4ed-11eb-ad49-00155d334221
        name:
          type: string
          example: medical condition name
      required:
        - conditionId
        - name
    GetMedicalConditionDto:
      type: object
      properties:
        id:
          type: string
          example: bd2b81ba-b4ed-11eb-ad49-00155d334221
        medicalCondition:
          description: '@type MedicalConditionInfoDto'
          allOf:
            - $ref: '#/components/schemas/MedicalConditionInfoDto'
        notes:
          type: string
          example: medical condition notes
        auditInfo:
          description: '@type AuditInfoDto'
          allOf:
            - $ref: '#/components/schemas/AuditInfoDto'
        archiveInfo:
          description: '@type ArchiveInfoDto'
          allOf:
            - $ref: '#/components/schemas/ArchiveInfoDto'
      required:
        - id
        - medicalCondition
        - auditInfo
        - archiveInfo
    GetMedProcedureDto:
      type: object
      properties:
        id:
          type: string
          example: f7977d7b-7001-434b-b720-91f8d7a69f52
        auditInfo:
          description: '@type AuditInfoDto'
          allOf:
            - $ref: '#/components/schemas/AuditInfoDto'
        archiveInfo:
          description: '@type ArchiveInfoDto'
          allOf:
            - $ref: '#/components/schemas/ArchiveInfoDto'
        name:
          type: string
          example: CT Scan
        procedureDate:
          type: string
          example: '2022-02-09T22:35:08.482Z'
        notes:
          type: string
          example: Performed by DR. Lorem Ipsum
      required:
        - id
        - auditInfo
        - archiveInfo
        - name
        - procedureDate
        - notes
    CreateMedProcedureDto:
      type: object
      properties:
        name:
          type: string
          example: CT Scan
        procedureDate:
          type: string
          example: '2022-02-09T22:35:08.482Z'
        notes:
          type: string
          example: Performed by DR. Lorem Ipsum
      required:
        - name
        - procedureDate
        - notes
    CreateMedicalAllergyDto:
      type: object
      properties:
        medicalAllergyId:
          type: string
          example: d621e321-20c2-4b72-8a56-dcdf177865a5
        notes:
          type: string
          example: Delayed response
      required:
        - medicalAllergyId
    MedicalAllergyDto:
      type: object
      properties:
        id:
          type: string
          example: 0287a3db-d031-4d61-8146-410857f13318
        name:
          type: string
          example: Penicillin
      required:
        - id
        - name
    GetMedicalAllergyDto:
      type: object
      properties:
        id:
          type: string
          example: 2c51e811-1e31-4ab9-b238-3f68973e413f
        notes:
          type: string
          example: Delayed response
        medicalAllergy:
          description: '@type MedicalAllergyDto'
          allOf:
            - $ref: '#/components/schemas/MedicalAllergyDto'
        auditInfo:
          description: '@type AuditInfoDto'
          allOf:
            - $ref: '#/components/schemas/AuditInfoDto'
        archiveInfo:
          description: '@type ArchiveInfoDto'
          allOf:
            - $ref: '#/components/schemas/ArchiveInfoDto'
      required:
        - id
        - medicalAllergy
        - auditInfo
        - archiveInfo
    SubscriberTransferDisplayModel:
      type: object
      properties:
        id:
          type: string
          example: c268d0d6-a628-484b-840f-7c2b40262e4b
        subscriberId:
          type: string
          example: 8f762a47-54f8-4798-a863-0aa743131da6
        organizationId:
          type: string
          example: cf85e4d0-1723-41e2-8a00-404194887dd6
        effectiveFrom:
          format: date-time
          type: string
          example: '2026-03-04T17:27:06.962Z'
        effectiveTo:
          format: date-time
          type: string
          example: '2026-03-04T17:27:06.962Z'
        orderInfo:
          type: array
          items:
            type: object
            properties:
              sourceOrderId:
                type: string
                example: c1a91164-9422-47d1-8732-8b8b7752e554
              targetContractId:
                type: string
                example: 9b51d28c-85db-4075-9aed-87073d8ebeae
        batchId:
          type: string
          example: 119f603b-83ff-4a89-9209-e2e4516ad91c
        auditInfo:
          allOf:
            - $ref: '#/components/schemas/AuditInfoDto'
      required:
        - id
        - subscriberId
        - organizationId
        - auditInfo
    CheckTransferHistoryDto:
      type: object
      properties:
        subscriberIds:
          minItems: 1
          example:
            - fd1a2097-5dd8-4425-8758-6eb2633c13a6
            - 9425d69d-9dd3-44b6-b593-53c3020e6515
          type: array
          items:
            type: string
      required:
        - subscriberIds
    TransferHistoryResultDto:
      type: object
      properties:
        subscriberIds:
          example:
            - 3c187aab-216f-4d9c-a710-8ea8ae1ea7d4
          type: array
          items:
            type: string
      required:
        - subscriberIds
    TransferSubscriberDto:
      type: object
      properties:
        targetOrgId:
          type: string
          example: 6fdef177-5814-40c7-8f51-af9e75db7b89
        scheduledAt:
          type: string
          example: '2026-03-04T17:27:06.950Z'
        orderInfo:
          type: array
          items:
            type: object
            properties:
              sourceOrderId:
                type: string
                example: e7853d80-a367-46c5-8488-afc5b654d2c9
              targetContractId:
                type: string
                example: 853fe09d-8d77-4665-b52c-57b5433d1405
      required:
        - targetOrgId
    TransferStatusErrorDetailsDto:
      type: object
      properties:
        node:
          type: string
        errorMessage:
          type: string
          nullable: true
      required:
        - node
    SubscriberTransferStatusDisplayModel:
      type: object
      properties:
        id:
          type: string
          example: 5966f556-2bbb-4e57-954a-19f076fd14a7
        personId:
          type: string
          example: 973e7945-ebfd-4271-8149-14c6addff9e4
        message:
          type: string
          example: string
        progressPercentage:
          type: number
          example: 10
        status:
          type: string
          enum:
            - IN-PROGRESS
            - SUCCESS
            - FAILURE
        eventId:
          type: string
        error:
          $ref: '#/components/schemas/TransferStatusErrorDetailsDto'
        completedAt:
          type: string
    HandlerDto:
      type: object
      properties:
        status:
          type: string
          enum:
            - SUCCESS
            - FAILURE
        eventId:
          type: string
          example: 655a6868c87274bc259be0ddeab55fa5
        errorMessage:
          type: string
          example: null
        startedAt:
          type: string
          example: '2026-03-04T17:27:06.948Z'
        completedAt:
          type: string
          example: '2026-03-04T17:27:06.948Z'
      required:
        - status
        - eventId
        - errorMessage
        - startedAt
        - completedAt
    OrgInfoDto:
      type: object
      properties:
        status:
          type: string
          enum:
            - SUCCESS
            - FAILURE
        executionId:
          type: string
          example: 1da95a70-e02c-41bd-bd34-8574e011cb49
        errorMessage:
          type: string
          example: null
        startedAt:
          type: string
          example: '2026-03-04T17:27:06.949Z'
      required:
        - status
        - executionId
        - errorMessage
        - startedAt
    BulkHandlerDto:
      type: object
      properties:
        status:
          type: string
          enum:
            - SUCCESS
            - FAILURE
        eventId:
          type: string
          example: 655a6868c87274bc259be0ddeab55fa5
        errorMessage:
          type: string
          example: null
        startedAt:
          type: string
          example: '2026-03-04T17:27:06.949Z'
        completedAt:
          type: string
          example: '2026-03-04T17:27:06.949Z'
        sourceOrgInfo:
          allOf:
            - $ref: '#/components/schemas/OrgInfoDto'
        targetOrgInfo:
          allOf:
            - $ref: '#/components/schemas/OrgInfoDto'
      required:
        - status
        - eventId
        - errorMessage
        - startedAt
        - completedAt
        - sourceOrgInfo
        - targetOrgInfo
    MedicationHandlerDto:
      type: object
      properties:
        status:
          type: string
          enum:
            - SUCCESS
            - FAILURE
        eventId:
          type: string
          example: 655a6868c87274bc259be0ddeab55fa5
        errorMessage:
          type: string
          example: null
        startedAt:
          type: string
          example: '2026-03-04T17:27:06.948Z'
        completedAt:
          type: string
          example: '2026-03-04T17:27:06.948Z'
        notes:
          type: string
          example: notes
      required:
        - status
        - eventId
        - errorMessage
        - startedAt
        - completedAt
    XferPersonEventHandlerDto:
      type: object
      properties:
        status:
          type: string
          enum:
            - SUCCESS
            - FAILURE
        messageId:
          type: string
          example: 655a6868c87274bc259be0ddeab55fa5
        errorMessage:
          type: string
          example: null
        startedAt:
          type: string
          example: '2026-03-04T17:27:06.970Z'
        completedAt:
          type: string
          example: '2026-03-04T17:27:06.970Z'
      required:
        - status
        - messageId
        - errorMessage
        - startedAt
        - completedAt
    SubscriberTransferActivityDisplayModel:
      type: object
      properties:
        id:
          type: string
          example: 24ee3093-6192-406d-b5de-29a97dfd0e92
        subscriberId:
          type: string
          example: 78cd6f33-852e-407e-b94b-969dfd81cecc
        sourceOrgId:
          type: string
          example: fa32a87a-73fa-4470-8ec7-693da93e4aad
        targetOrgId:
          type: string
          example: d209521c-5c35-4302-b4e2-bc64b073411c
        scheduledAt:
          type: string
          example: '2026-03-04T17:27:06.971Z'
        status:
          type: string
          enum:
            - IN-PROGRESS
            - SUCCESS
            - FAILURE
        type:
          type: string
          enum:
            - single-subscriber-transfer
            - specific-subscribers-transfer
        batchId:
          type: string
          example: 409217b3-1c6b-4de1-944b-2ab2fad7f7da
        executionCompletedAt:
          type: string
          example: '2026-03-04T17:27:06.971Z'
        xferInitiationHandler:
          $ref: '#/components/schemas/HandlerDto'
        xferOrderHandler:
          $ref: '#/components/schemas/HandlerDto'
        xferEventHandler:
          $ref: '#/components/schemas/HandlerDto'
        xferNvtHandler:
          $ref: '#/components/schemas/HandlerDto'
        xferBulkReminderHandler:
          $ref: '#/components/schemas/BulkHandlerDto'
        xferCrmHandler:
          $ref: '#/components/schemas/HandlerDto'
        xferSurveyHandler:
          $ref: '#/components/schemas/HandlerDto'
        xferMedicationHandler:
          $ref: '#/components/schemas/MedicationHandlerDto'
        xferCalendarEventsHandler:
          $ref: '#/components/schemas/XferPersonEventHandlerDto'
        xferAddisonEventsHandler:
          $ref: '#/components/schemas/XferPersonEventHandlerDto'
        auditInfo:
          $ref: '#/components/schemas/AuditInfoDto'
      required:
        - id
        - subscriberId
        - sourceOrgId
        - targetOrgId
        - scheduledAt
        - executionCompletedAt
    BatchSubscriberTransferDisplayModel:
      type: object
      properties:
        id:
          type: string
          example: 1fadd394-e4a6-46db-b4c1-9da6126e6cd6
        sourceOrganization:
          oneOf:
            - $ref: '#/components/schemas/OrganizationDisplayModel'
            - type: string
        targetOrganization:
          oneOf:
            - $ref: '#/components/schemas/OrganizationDisplayModel'
            - type: string
        subscribers:
          oneOf:
            - type: array
              items:
                $ref: '#/components/schemas/PersonDisplayModel'
            - type: array
              items:
                type: string
        scheduledAt:
          format: date-time
          type: string
          example: '2026-03-04T17:27:06.944Z'
        auditInfo:
          allOf:
            - $ref: '#/components/schemas/AuditInfoDto'
      required:
        - id
        - sourceOrganization
        - targetOrganization
        - auditInfo
    BatchStatusItemDto:
      type: object
      properties:
        status:
          enum:
            - IN-PROGRESS
            - SUCCESS
            - FAILURE
          type: string
        count:
          type: number
          example: 1
        subscribers:
          type: array
          items:
            oneOf:
              - type: array
                items:
                  $ref: '#/components/schemas/PersonDisplayModel'
              - type: array
                items:
                  type: string
      required:
        - status
        - count
    BatchSubscriberTransferStatusDisplayModel:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/BatchStatusItemDto'
        total:
          type: number
          example: 1
          description: Total number of statuses
      required:
        - items
        - total
    OrderInfoDto:
      type: object
      properties:
        sourceOrderId:
          type: string
          example: e29a6381-754c-4ae1-8ad8-62a6864a03e7
        targetContractId:
          type: string
          example: ce184f3d-9b1d-4605-ac08-60735113ecc9
      required:
        - sourceOrderId
        - targetContractId
    TransferInfoDto:
      type: object
      properties:
        subscriberId:
          type: string
          example: b9b465b0-9291-4090-9e91-d1e121d9f9f3
        orderInfo:
          type: array
          items:
            $ref: '#/components/schemas/OrderInfoDto'
      required:
        - subscriberId
    AddBatchSubscriberTransferDto:
      type: object
      properties:
        targetOrgId:
          type: string
          example: 43ee1b45-00fa-4017-9dd5-cb89ebdc6131
        scheduledAt:
          type: string
          example: '2026-03-04T17:27:06.941Z'
        transferInfo:
          type: array
          items:
            $ref: '#/components/schemas/TransferInfoDto'
      required:
        - targetOrgId
        - transferInfo
    UpdateEcgAdminDto:
      type: object
      properties:
        policies:
          example:
            - 145a1ce9-8bc3-454b-941a-cd03b6471a17
          type: array
          items:
            type: string
        customPermissions:
          example:
            - 253ad4ec-b6e1-4135-b8d0-3f6055a8761c
          type: array
          items:
            type: string
        firstName:
          type: string
          example: string
        lastName:
          type: string
          example: string
        salutation:
          type: number
          example: 1
        suffix:
          type: string
          example: string
        legacyIdentifier:
          type: string
          example: f71a8c23-5a72-4cdf-aeee-c8b54f775cfc
      required:
        - firstName
        - lastName
    EcgAdminDisplayModel:
      type: object
      properties:
        id:
          type: string
          example: 8f9bf5e3-9af6-4671-ab5b-59ce782760d5
        policies:
          example:
            - 2dad50cc-0bfe-4766-9c1e-458b972d5504
          type: array
          items:
            type: string
        customPermissions:
          example:
            - a6422ed1-8013-4c4b-8f8a-3654606bf80e
          type: array
          items:
            type: string
        activeInfo:
          $ref: '#/components/schemas/ActiveInfoDto'
        person:
          $ref: '#/components/schemas/PersonDisplayModel'
      required:
        - id
        - policies
        - activeInfo
        - person
    AddEcgAdminDto:
      type: object
      properties:
        legacyIdentifier:
          type: string
          example: 8e49d53e-565d-40e8-83a3-27e2b0670581
        policies:
          example:
            - 3ef12aeb-aabf-41c5-a128-be620d1f1c91
          type: array
          items:
            type: string
        person:
          $ref: '#/components/schemas/AddPersonDto'
        account:
          $ref: '#/components/schemas/AddAccountDto'
        addresses:
          type: array
          items:
            $ref: '#/components/schemas/AddAddressDto'
        phoneNumbers:
          type: array
          items:
            $ref: '#/components/schemas/AddPhoneNumberDto'
        customPermissions:
          example:
            - 5e6f0b55-a1bf-4ee5-a2c7-41cd4b023afc
          type: array
          items:
            type: string
      required:
        - person
        - addresses
        - phoneNumbers
    AddPartnerDto:
      type: object
      properties:
        legacyIdentifier:
          type: string
          example: 9597eb62-747f-4dc9-980c-373a2e639a43
        allowSubscriberAccess:
          type: boolean
          example: false
        person:
          $ref: '#/components/schemas/AddPersonDto'
        account:
          $ref: '#/components/schemas/AddAccountDto'
        organization:
          $ref: '#/components/schemas/AddOrganizationDto'
        parentId:
          type: string
          example: fa6997a6-56ad-4469-81f8-a318a6e13d16
        partnerType:
          type: string
          example: 13a8db11-0ec8-4dee-b05a-d39c44d55e41
        addresses:
          type: array
          items:
            $ref: '#/components/schemas/AddAddressDto'
        phoneNumbers:
          type: array
          items:
            $ref: '#/components/schemas/AddPhoneNumberDto'
        integrationMetadata:
          $ref: '#/components/schemas/IntegrationMetadataDto'
        signOnDate:
          format: date-time
          type: string
          example: '2026-03-04T17:27:05.296Z'
      required:
        - partnerType
        - addresses
        - phoneNumbers
    UpdatePartnerDto:
      type: object
      properties:
        legacyIdentifier:
          type: string
          example: 07f85685-3967-4c98-ba2d-da258591c2db
        firstName:
          type: string
          example: string
        lastName:
          type: string
          example: string
        salutation:
          type: number
          example: 1
        suffix:
          type: string
          example: string
        allowSubscriberAccess:
          type: boolean
          example: false
        integrationMetadata:
          type: object
          example:
            key: value
        signOnDate:
          format: date-time
          type: string
          example: '2026-03-04T17:27:05.460Z'
      required:
        - firstName
        - lastName
        - allowSubscriberAccess
    AddPartnerTypeDto:
      type: object
      properties:
        name:
          type: string
          example: string
        code:
          type: string
          example: string
        description:
          type: string
          example: string | null
        apptivoValueId:
          type: string
          example: string
        directPayout:
          type: boolean
          example: false
        successLadderBonus:
          type: string
          example: 770cfe7c-4820-45b1-a9dd-e63e1885a5a8
      required:
        - name
        - code
        - directPayout
    UpdatePartnerTypeDto:
      type: object
      properties:
        name:
          type: string
          example: string
        code:
          type: string
          example: string
        description:
          type: string
          example: string | null
        directPayout:
          type: boolean
          example: false
        successLadderBonus:
          type: string
          example: b1f4fbde-ec46-415d-8093-2332ec61892e
      required:
        - name
        - code
        - directPayout
    AddChildPartnerTypeIdsDto:
      type: object
      properties:
        childPartnerTypeIds:
          example:
            - b7058dfc-c700-4920-a1e5-8f0fcd7ac8a2
          type: array
          items:
            type: string
      required:
        - childPartnerTypeIds
    PartnerIndirectCommissionDisplayModel:
      type: object
      properties:
        id:
          type: string
          example: 2c73831c-0c94-4af9-9e3b-15b0fc73f548
        parentPartnerType:
          type: string
          example: bb990a76-48de-420e-ae7a-33572ac5d65d
        childPartnerType:
          $ref: '#/components/schemas/PartnerTypeDisplayModel'
        productId:
          type: string
          example: 5d26401d-b365-4e40-b11a-b4278c104f1a
        recurringCommissionAmount:
          type: number
          example: 0
        oneTimeCommissionAmount:
          type: number
          example: 0
      required:
        - id
        - parentPartnerType
        - childPartnerType
        - productId
        - recurringCommissionAmount
        - oneTimeCommissionAmount
    PartnerCommissionDisplayModel:
      type: object
      properties:
        id:
          type: string
          example: 8bcc6670-179d-473a-b7f8-fa96c7a1c8f0
        productId:
          type: string
          example: 45653928-ed2e-4da0-a57f-1fd917b6cfe6
        partnerType:
          $ref: '#/components/schemas/PartnerTypeDisplayModel'
        isOneTimeCommission:
          type: boolean
          example: false
        isRecurringCommission:
          type: boolean
          example: false
        recurringCommissionAmount:
          type: number
          example: 0
        oneTimeCommissionAmount:
          type: number
          example: 0
      required:
        - id
        - productId
        - partnerType
        - isOneTimeCommission
        - isRecurringCommission
        - recurringCommissionAmount
        - oneTimeCommissionAmount
    Commission:
      type: object
      properties:
        allowed:
          type: boolean
          example: false
        commissionAmount:
          type: number
          example: 0
      required:
        - allowed
        - commissionAmount
    AddPartnerCommissionDto:
      type: object
      properties:
        productId:
          type: string
          example: d5856ba4-7cf0-4340-a13b-4fe60bea3571
        oneTimeCommission:
          $ref: '#/components/schemas/Commission'
        recurringCommission:
          $ref: '#/components/schemas/Commission'
      required:
        - productId
        - oneTimeCommission
        - recurringCommission
    UpdatePartnerCommissionDto:
      type: object
      properties:
        productId:
          type: string
          example: ce6b8f41-233a-4d1f-b3b8-23cdaab9578b
        isOneTimeCommission:
          type: boolean
          example: false
        isRecurringCommission:
          type: boolean
          example: false
        recurringCommissionAmount:
          type: number
          example: 1
        oneTimeCommissionAmount:
          type: number
          example: 1
      required:
        - productId
        - isOneTimeCommission
        - isRecurringCommission
        - recurringCommissionAmount
        - oneTimeCommissionAmount
    AssignSlbDto:
      type: object
      properties:
        successLadderBonus:
          type: string
          example: 6a1b45d2-1556-4eb0-b30f-0bc681a0d61e
      required:
        - successLadderBonus
    AddHcoCommissionDto:
      type: object
      properties:
        hcoCommission:
          type: number
      required:
        - hcoCommission
    UpdateHcoCommissionDto:
      type: object
      properties:
        hcoCommission:
          type: number
          example: 0
      required:
        - hcoCommission
    AddSuccessLadderBonusDto:
      type: object
      properties:
        title:
          type: string
          example: string
        description:
          type: string
          example: string
        currencyCode:
          type: string
          example: string
        tiers:
          type: array
          items:
            $ref: '#/components/schemas/AddTiersDto'
      required:
        - title
        - currencyCode
        - tiers
    UpdateSuccessLadderBonusDto:
      type: object
      properties:
        title:
          type: string
          example: string
        description:
          type: string
          example: string
        currencyCode:
          type: string
          example: string
        tiers:
          type: array
          items:
            $ref: '#/components/schemas/AddTiersDto'
      required:
        - title
        - currencyCode
        - tiers
    UpdatePolicyGroupDto:
      type: object
      properties:
        title:
          type: string
          example: string
        code:
          type: string
          example: string
        description:
          type: string
          example: string
        policies:
          example:
            - 7f9f8eb2-cefa-4f14-8c4e-a3fe3d3cbe43
          type: array
          items:
            type: string
      required:
        - title
        - code
        - policies
    PolicyGroupDisplayModel:
      type: object
      properties:
        id:
          type: string
          example: 978dd95c-bedc-423f-8fec-6f1d8ff2041d
        title:
          type: string
          example: string
        code:
          type: string
          example: string
        description:
          type: string
          example: string
        archiveInfo:
          $ref: '#/components/schemas/ArchiveInfoDto'
        auditInfo:
          $ref: '#/components/schemas/AuditInfoDto'
        policies:
          type: array
          items:
            $ref: '#/components/schemas/PolicyDisplayModel'
      required:
        - id
        - title
        - code
        - description
        - archiveInfo
        - auditInfo
        - policies
    AddPolicyGroupDto:
      type: object
      properties:
        title:
          type: string
          example: string
        code:
          type: string
          example: string
        description:
          type: string
          example: string | null
        policies:
          example:
            - 61fa8c2b-9d1e-4b25-978a-bf5a2134b58d
          type: array
          items:
            type: string
      required:
        - title
        - code
        - policies
    AddPolicyIdsDto:
      type: object
      properties:
        policyIds:
          example:
            - 1e366e0e-f95c-4a1e-a8ba-093155d50a7d
          type: array
          items:
            type: string
      required:
        - policyIds
    UpdateAneltoCredentialDto:
      type: object
      properties:
        aneltoUsername:
          type: string
          example: string
        aneltoPassword:
          type: string
          example: string
      required:
        - aneltoUsername
        - aneltoPassword
    AddAneltoCredentialDto:
      type: object
      properties:
        aneltoUsername:
          type: string
          example: string
        aneltoPassword:
          type: string
          example: string
      required:
        - aneltoUsername
        - aneltoPassword
    AneltoCredentialDisplayModel:
      type: object
      properties:
        aneltoUsername:
          type: string
          example: string
        aneltoPasswordReference:
          type: string
          example: string
        secretsManagerArn:
          type: string
          example: string
        auditInfo:
          $ref: '#/components/schemas/AuditInfoDto'
        archiveInfo:
          $ref: '#/components/schemas/ArchiveInfoDto'
      required:
        - aneltoUsername
        - aneltoPasswordReference
        - secretsManagerArn
        - auditInfo
        - archiveInfo
    DeviceLogDisplayModel:
      type: object
      properties:
        id:
          type: string
          example: a77840da-6f33-4f93-a245-b132c46d533b
        subscriberId:
          type: string
          example: b602b190-de40-430b-b0b6-31e1b9465975
        organizationId:
          type: string
          example: caaae83f-4a35-4d54-99f5-a1e870f04c5f
        orderId:
          type: string
          example: 62880022075fb6accd9c2afc
        orderLineItemId:
          type: string
          example: 62880022075fb6accd9c2afc
        productType:
          type: string
          example: anelto-hub
        primaryAttribute:
          type: string
          example: ANZ0000
        provisionedAttributes:
          type: object
          example:
            address: 124 N Street
        effectiveFrom:
          type: string
          example: '2020-01-01 06:30:00'
        effectiveTo:
          type: string
          example: '2021-01-02 06:30:00'
        orderType:
          type: number
          example: 1
        active:
          type: boolean
          example: false
        auditFields:
          allOf:
            - $ref: '#/components/schemas/AuditInfoDto'
      required:
        - id
        - subscriberId
        - organizationId
        - orderId
        - orderLineItemId
        - productType
        - primaryAttribute
        - provisionedAttributes
        - effectiveFrom
        - effectiveTo
        - orderType
        - active
        - auditFields
    AddClientCredentialDto:
      type: object
      properties:
        personId:
          type: string
          example: 79d92116-6f69-4a1a-8f4d-c7a02d597e7f
      required:
        - personId
    AppClientCredentialDisplayModel:
      type: object
      properties:
        person:
          $ref: '#/components/schemas/PersonDisplayModel'
        organization:
          oneOf:
            - $ref: '#/components/schemas/OrganizationDisplayModel'
            - type: string
        auditInfo:
          $ref: '#/components/schemas/AuditInfoDto'
        archiveInfo:
          $ref: '#/components/schemas/ArchiveInfoDto'
        clientId:
          type: string
          example: string
      required:
        - person
        - organization
        - auditInfo
        - archiveInfo
        - clientId
    AppClientSecretDisplayModel:
      type: object
      properties:
        person:
          $ref: '#/components/schemas/PersonDisplayModel'
        organization:
          oneOf:
            - $ref: '#/components/schemas/OrganizationDisplayModel'
            - type: string
        auditInfo:
          $ref: '#/components/schemas/AuditInfoDto'
        archiveInfo:
          $ref: '#/components/schemas/ArchiveInfoDto'
        clientId:
          type: string
          example: string
        clientSecret:
          type: string
          example: string
      required:
        - person
        - organization
        - auditInfo
        - archiveInfo
        - clientId
        - clientSecret
    AddApiKeyCredentialDto:
      type: object
      properties:
        apiKey:
          type: string
          example: string
        personId:
          type: string
          example: 5111cbe1-31e1-4148-8486-c52751f20785
      required:
        - apiKey
        - personId
    ApiKeyCredentialDisplayModel:
      type: object
      properties:
        person:
          $ref: '#/components/schemas/PersonDisplayModel'
        organization:
          oneOf:
            - $ref: '#/components/schemas/OrganizationDisplayModel'
            - type: string
        auditInfo:
          $ref: '#/components/schemas/AuditInfoDto'
        archiveInfo:
          $ref: '#/components/schemas/ArchiveInfoDto'
        apiKey:
          type: string
          example: string
      required:
        - person
        - organization
        - auditInfo
        - archiveInfo
        - apiKey
    SubscriberStatusChangeHistoryDisplayModel:
      type: object
      properties:
        id:
          type: string
          example: 6d0cc223-7ef9-4652-b28c-f6dc1feb8d39
        subscriberId:
          type: string
          example: 473306ed-d4c6-4505-ba0f-d8e5f755b7a6
        organizationId:
          type: string
          example: 24d66acb-d033-4fb4-b586-42a771a32755
        statusFrom:
          type: string
          enum:
            - Under Review
            - Active
            - On Hold
            - Cancelled
            - Closed
            - Created
            - Anonymized
            - Away
            - Opt-Out
            - Unenrolled
          example: Active
        statusTo:
          type: string
          enum:
            - Under Review
            - Active
            - On Hold
            - Cancelled
            - Closed
            - Created
            - Anonymized
            - Away
            - Opt-Out
            - Unenrolled
          example: Opt-Out
        changedAt:
          format: date-time
          type: string
          example: '2026-03-04T17:27:07.023Z'
        changedBy:
          type: string
          example: 513f9f6e-505b-4e1e-a62c-51735903f165
      required:
        - id
        - subscriberId
        - organizationId
        - statusFrom
        - statusTo
        - changedAt
        - changedBy
    UpdatePartnerTypeV2Dto:
      type: object
      properties:
        name:
          type: string
          example: string
        code:
          type: string
          example: string
        description:
          type: string
          example: string | null
        childPartnerTypeIds:
          example:
            - 9abdef5f-9100-4911-a4f0-b20f66539d35
          type: array
          items:
            type: string
        allowSelfParenting:
          type: boolean
          example: false
      required:
        - name
    LevelPartnerTypeDisplayModelV2:
      type: object
      properties:
        id:
          type: string
          example: 1e01f3be-d88a-42a0-bbd3-09fc8aa3bc4d
        name:
          type: string
          example: string
        code:
          type: string
          example: string
        description:
          type: string
          example: string
        allowSelfParenting:
          type: boolean
          example: false
        ancestryMetadata:
          $ref: '#/components/schemas/AncestryMetadataDto'
        apptivoValueId:
          type: string
          example: string
        auditInfo:
          $ref: '#/components/schemas/AuditInfoDto'
        activeInfo:
          $ref: '#/components/schemas/ActiveInfoDto'
        archiveInfo:
          $ref: '#/components/schemas/ArchiveInfoDto'
        parentPartnerTypes:
          type: array
          items:
            $ref: '#/components/schemas/ChildPartnerTypeDisplayModelV2'
        childPartnerTypes:
          type: array
          items:
            $ref: '#/components/schemas/PartnerTypeDisplayModelV2'
        level:
          type: number
          example: 1
      required:
        - id
        - name
        - code
        - auditInfo
        - activeInfo
        - archiveInfo
        - level
    ListPartnerTypeItemDto:
      type: object
      properties:
        items:
          description: List of ancestry nodes in this group
          type: array
          items:
            $ref: '#/components/schemas/LevelPartnerTypeDisplayModelV2'
        totalItems:
          type: number
          description: The total count of nodes in this ancestry group
          example: 4
      required:
        - items
        - totalItems
    ListPartnerTypeGroupDto:
      type: object
      properties:
        groups:
          description: List of ancestry groups in the response
          type: array
          items:
            $ref: '#/components/schemas/ListPartnerTypeItemDto'
        totalGroups:
          type: number
          description: Total number of ancestry groups
          example: 2
      required:
        - groups
        - totalGroups
    AddPartnerTypeDtoV2:
      type: object
      properties:
        name:
          type: string
          example: string
        code:
          type: string
          example: string
        description:
          type: string
          example: string
        childPartnerTypeIds:
          example:
            - string
          type: array
          items:
            type: string
        allowSelfParenting:
          type: boolean
          default: false
      required:
        - name
        - code
    LevelPartnerDisplayModelV2:
      type: object
      properties:
        id:
          type: string
          example: 854e27cb-7ddd-4c0f-950d-1d60bc9e0cb9
        type:
          type: string
          example: string
        status:
          type: string
          example: string
        hcoXrefId:
          type: string
          example: string
        businessName:
          type: string
          example: string
        displayName:
          type: string
          example: string
        integrationMetadata:
          type: object
          example:
            key: value
        nodes:
          example:
            - a60dbf9d-2963-4256-9019-94296a81cb1c
          type: array
          items:
            type: string
        ancestryNodes:
          example:
            - 289fe665-e0aa-4eab-9440-cdbfbd9afdee
          type: array
          items:
            type: string
        originationSource:
          type: string
          example: string
        onBoardingStatus:
          type: number
          example: 1
        organizationStatus:
          type: number
          example: 1
        rrmsSiteGroupId:
          type: string
          example: 974ad49c-2a0c-4a88-b25a-5852047b3407
        timezoneId:
          type: string
          example: string
        archiveInfo:
          $ref: '#/components/schemas/ArchiveInfoDto'
        auditInfo:
          $ref: '#/components/schemas/AuditInfoDto'
        activeInfo:
          $ref: '#/components/schemas/ActiveInfoDto'
        party:
          $ref: '#/components/schemas/PartyDisplayModel'
        signOnDate:
          format: date-time
          type: string
          example: '2026-03-04T17:27:05.269Z'
        actionPlanCode:
          type: string
          example: string
        customerId:
          type: string
          example: string
        partnerCriteria:
          $ref: '#/components/schemas/PartnerCriteriaDisplayModel'
        vendorProfiles:
          oneOf:
            - $ref: '#/components/schemas/VendorProfilePreviewModel'
            - type: string
        onBoardingPartner:
          oneOf:
            - $ref: '#/components/schemas/OrganizationChildDisplayModel'
            - type: string
        parentPartner:
          oneOf:
            - $ref: '#/components/schemas/OrganizationChildDisplayModel'
            - type: string
        level:
          type: number
          example: 1
      required:
        - id
        - type
        - businessName
        - displayName
        - nodes
        - ancestryNodes
        - originationSource
        - onBoardingStatus
        - organizationStatus
        - archiveInfo
        - auditInfo
        - activeInfo
        - level
    UpdatePartnerV2Dto:
      type: object
      properties:
        legacyIdentifier:
          type: string
          example: 5389af7b-f743-446d-a296-a8c9bdad2fae
        businessName:
          type: string
          example: string
        displayName:
          type: string
          example: string
        parentId:
          type: string
          example: 1e385439-c582-453d-8087-12fb51903632
        onBoardingPartnerId:
          type: string
          example: af1e0505-09d8-4371-b251-582032e2a8e6
        integrationMetadata:
          type: object
          example:
            key: value
        onBoardingStatus:
          type: number
          default: 1
          description: |2-

                       status: 1 indicates "Not Started",
                       status: 2 indicates "Welcome Call",
                       status: 3 indicates "Partner Education",
                       status: 4 indicates "Completed",
                   
        rrmsSiteGroupId:
          type: string
          example: string
        signOnDate:
          format: date-time
          type: string
          example: '2026-03-04T17:27:05.441Z'
        timezoneId:
          type: string
          example: string
        actionPlanCode:
          type: string
          example: string
        partnerTypeId:
          type: string
          example: f3edc3b1-35c4-497b-b201-16f4dd8f7a4e
        status:
          type: string
          enum:
            - on-boarded
            - active
            - inactive
            - suspended
            - on-hold
        commissionPayoutStatus:
          type: string
          enum:
            - active
            - inactive
            - blocked
            - pending-cutoff
            - under-charge-back
        deactivatedDate:
          format: date-time
          type: string
          example: '2026-03-04'
          description: Should be of type - yyyy-MM-dd
        onboardingDate:
          format: date-time
          type: string
          example: '2026-03-04'
          description: Should be of type - yyyy-MM-dd
        salesCutOffDate:
          format: date-time
          type: string
          example: '2026-03-04'
          description: Should be of type - yyyy-MM-dd
        enableCommissions:
          type: boolean
          example: false
        w9Submitted:
          type: boolean
          example: false
        isW2:
          type: boolean
          example: false
        apptivoCustomerId:
          type: string
          example: string
      required:
        - businessName
        - displayName
        - partnerTypeId
    AddPartnerCriteriaDto:
      type: object
      properties:
        partnerTypeId:
          type: string
          example: e8d2d255-3e62-413f-9275-e8929eced814
        status:
          type: string
          default: active
          deprecated: true
          description: field has been deprecated
        commissionPayoutStatus:
          type: string
          enum:
            - active
            - inactive
            - blocked
            - pending-cutoff
            - under-charge-back
          default: inactive
          deprecated: true
          description: field has been deprecated
        deactivatedDate:
          format: date-time
          type: string
          example: '2026-03-04'
          description: field has been deprecated
          deprecated: true
        onboardingDate:
          format: date-time
          type: string
          example: '2026-03-04'
          description: Should be of type - yyyy-MM-dd
        salesCutOffDate:
          format: date-time
          type: string
          example: '2026-03-04'
          description: field has been deprecated
          deprecated: true
        enableCommissions:
          type: boolean
          default: false
        w9Submitted:
          type: boolean
          default: false
        isW2:
          type: boolean
          default: false
      required:
        - partnerTypeId
    PaymentPurposeCodeDto:
      type: object
      properties:
        name:
          type: string
          example: string
          description: >-
            The name of the payment purpose, e.g., 'Invoice Payment', 'Refund',
            etc.
      required:
        - name
    PaymentPurposeDto:
      type: object
      properties:
        code:
          description: The purpose of the payment, such as 'Invoice Payment' or 'Refund'.
          allOf:
            - $ref: '#/components/schemas/PaymentPurposeCodeDto'
        text:
          type: string
          example: OPTIONAL
          description: >-
            An optional description or further text related to the payment
            purpose.
      required:
        - code
    RegulatoryFieldDto:
      type: object
      properties:
        name:
          type: string
          example: string
          description: The name of the regulatory field, e.g., 'SWIFT Code', 'Tax ID'.
        value:
          type: string
          example: string
          description: >-
            The value associated with the regulatory field, e.g., 'US12345',
            'ABCD1234'.
      required:
        - name
        - value
    AddBankAccountDto:
      type: object
      properties:
        paymentPurpose:
          description: Details of the payment purpose (optional).
          allOf:
            - $ref: '#/components/schemas/PaymentPurposeDto'
        type:
          enum:
            - CHECKING
            - SAVINGS
          type: string
          description: >-
            The type of the vendor's bank account (e.g., 'CHECKING' or
            'SAVINGS').
        payeeName:
          type: string
          example: string
          description: The name of the payee on the bank account.
        nameOnAccount:
          type: string
          example: string
          description: The name on the bank account (optional).
        accountNumber:
          type: string
          example: '1234567890'
          description: >-
            Vendor bank account number. This field is required for enabling
            electronic payments to vendors. (required).
        routingNumber:
          type: string
          example: '021000021'
          description: The bank account routing number (optional).
        regulatoryFields:
          description: >-
            List of regulatory fields that may apply to the account, such as tax
            ID or SWIFT code.
          type: array
          items:
            $ref: '#/components/schemas/RegulatoryFieldDto'
      required:
        - type
        - payeeName
        - accountNumber
        - routingNumber
    AddVendorAccountDto:
      type: object
      properties:
        currency:
          type: string
          default: USD
          description: >-
            Three-letter abbreviation. This field is required for enabling
            electronic payments to vendors. (e.g., USD, EUR).
        accountNumber:
          type: string
          example: '1234567890'
          description: >-
            User account number set by the vendor. When you pay the vendor, this
            value appears on the check memo or electronic payment record.
            (optional).
        email:
          type: string
          example: email@test.com
          description: The vendor's email address (optional).
        bankAccount:
          description: >-
            Bank account details for the vendor, including payee name, account
            number, and routing number.
          allOf:
            - $ref: '#/components/schemas/AddBankAccountDto'
    AddPartnerV2Dto:
      type: object
      properties:
        organization:
          $ref: '#/components/schemas/AddOrganizationDto'
        partnerCriteria:
          $ref: '#/components/schemas/AddPartnerCriteriaDto'
        vendorAccount:
          $ref: '#/components/schemas/AddVendorAccountDto'
      required:
        - organization
        - partnerCriteria
    PartnerOrganizationDisplayModel:
      type: object
      properties:
        id:
          type: string
          example: 854e27cb-7ddd-4c0f-950d-1d60bc9e0cb9
        type:
          type: string
          example: string
        status:
          type: string
          example: string
        hcoXrefId:
          type: string
          example: string
        businessName:
          type: string
          example: string
        displayName:
          type: string
          example: string
        integrationMetadata:
          type: object
          example:
            key: value
        nodes:
          example:
            - a60dbf9d-2963-4256-9019-94296a81cb1c
          type: array
          items:
            type: string
        ancestryNodes:
          example:
            - 289fe665-e0aa-4eab-9440-cdbfbd9afdee
          type: array
          items:
            type: string
        originationSource:
          type: string
          example: string
        onBoardingStatus:
          type: number
          example: 1
        organizationStatus:
          type: number
          example: 1
        rrmsSiteGroupId:
          type: string
          example: 974ad49c-2a0c-4a88-b25a-5852047b3407
        timezoneId:
          type: string
          example: string
        archiveInfo:
          $ref: '#/components/schemas/ArchiveInfoDto'
        auditInfo:
          $ref: '#/components/schemas/AuditInfoDto'
        activeInfo:
          $ref: '#/components/schemas/ActiveInfoDto'
        party:
          $ref: '#/components/schemas/PartyDisplayModel'
        signOnDate:
          format: date-time
          type: string
          example: '2026-03-04T17:27:05.269Z'
        actionPlanCode:
          type: string
          example: string
        customerId:
          type: string
          example: string
        partnerCriteria:
          $ref: '#/components/schemas/PartnerCriteriaDisplayModel'
        vendorProfiles:
          oneOf:
            - $ref: '#/components/schemas/VendorProfilePreviewModel'
            - type: string
        onBoardingPartner:
          oneOf:
            - $ref: '#/components/schemas/OrganizationChildDisplayModel'
            - type: string
        parentPartner:
          oneOf:
            - $ref: '#/components/schemas/OrganizationChildDisplayModel'
            - type: string
        subsidiaries:
          description: Child Partners Details
          type: array
          items:
            $ref: '#/components/schemas/OrganizationChildDisplayModel'
      required:
        - id
        - type
        - businessName
        - displayName
        - nodes
        - ancestryNodes
        - originationSource
        - onBoardingStatus
        - organizationStatus
        - archiveInfo
        - auditInfo
        - activeInfo
    AddressDto:
      type: object
      properties:
        line1:
          type: string
        line2:
          type: string
        city:
          type: string
        stateOrProvince:
          type: string
        zipOrPostalCode:
          type: string
        country:
          type: string
        countryName:
          type: string
      required:
        - line1
        - city
        - zipOrPostalCode
        - country
    VendorInfoDisplayModelDto:
      type: object
      properties:
        id:
          type: string
        archived:
          type: boolean
        businessName:
          type: string
        displayName:
          type: string
        accountNumber:
          type: string
        accountType:
          type: string
        email:
          type: string
        address:
          $ref: '#/components/schemas/AddressDto'
      required:
        - id
        - archived
    VirtualCardDto:
      type: object
      properties:
        status:
          type: string
      required:
        - status
    BankAccountDto:
      type: object
      properties:
        accountNumber:
          type: string
          example: '123456789'
        nameOnAccount:
          type: string
          example: John Doe
        ownerType:
          type: string
          enum:
            - BUSINESS
            - INDIVIDUAL
          example: BUSINESS
        paymentCurrency:
          type: string
          example: USD
        routingNumber:
          type: string
          example: '021000021'
        type:
          type: string
          enum:
            - CHECKING
            - SAVINGS
          example: CHECKING
      required:
        - accountNumber
        - paymentCurrency
        - routingNumber
        - type
    PaymentInfoDto:
      type: object
      properties:
        payeeName:
          type: string
          example: string
        email:
          type: string
          example: user@example.com
        payByType:
          type: string
          enum:
            - CHECK
            - ACH
            - VIRTUAL_CARD
          example: VIRTUAL_CARD
        payBySubType:
          type: string
          enum:
            - NONE
            - STANDARD
            - EXPRESS
          example: NONE
        virtualCard:
          $ref: '#/components/schemas/VirtualCardDto'
        bankAccount:
          $ref: '#/components/schemas/BankAccountDto'
        paymentPurpose:
          $ref: '#/components/schemas/PaymentPurposeDto'
        bankAccountStatus:
          type: string
          enum:
            - 'NO_ACCOUNT '
            - 'NO_NET_LINKED_ACCOUNT '
            - 'NET_LINKED_ACCOUNT '
            - UNDEFINED
          example: 'NO_NET_LINKED_ACCOUNT '
      required:
        - payeeName
        - bankAccount
    VendorBankAccountDisplayModel:
      type: object
      properties:
        accountNumber:
          type: string
          example: '123456789'
          deprecated: true
        nameOnAccount:
          type: string
          example: John Doe
          deprecated: true
        ownerType:
          type: string
          enum:
            - BUSINESS
            - INDIVIDUAL
          example: BUSINESS
          deprecated: true
        paymentCurrency:
          type: string
          example: USD
          deprecated: true
        routingNumber:
          type: string
          example: '021000021'
          deprecated: true
        type:
          type: string
          enum:
            - CHECKING
            - SAVINGS
          example: CHECKING
          deprecated: true
        vendor:
          $ref: '#/components/schemas/VendorInfoDisplayModelDto'
        paymentInfo:
          $ref: '#/components/schemas/PaymentInfoDto'
    CheckStatusResponseDto:
      type: object
      properties:
        status:
          enum:
            - active
            - inactive
          type: string
          example: active
          description: The status of the partner vendor in Bill.com
        error:
          type: string
          example: Organization is locked out.
          description: >-
            Error message from Bill.com when status is inactive. Only present
            when status is inactive.
      required:
        - status
    MetadataDTO:
      type: object
      properties:
        from:
          type: string
        to:
          type: string
        notes:
          type: string
    PersonNameDisplayModel:
      type: object
      properties:
        id:
          type: string
          example: a01c8f0c-95a1-4e94-b6c7-5074f95cd745
        firstName:
          type: string
          example: string
        lastName:
          type: string
          example: string
      required:
        - id
        - firstName
        - lastName
    PartnerActivityDisplayModel:
      type: object
      properties:
        id:
          type: string
          example: dfba884e-8428-457a-a280-392062aaeee6
        partnerId:
          type: string
          example: 9b422abd-d462-47ab-813b-8cc0f305a2e6
        activityType:
          type: string
          enum:
            - sales-cutoff-date
            - status
            - commission-payout-status
            - deactivated-date
            - onboarding-date
            - enable-commission
            - w9-submitted
            - sign-on-date
        metadata:
          $ref: '#/components/schemas/MetadataDTO'
        changedAt:
          format: date-time
          type: string
          example: '2024-09-02'
        changedBy:
          example:
            id: 42e6aa2f-11f4-4017-9768-24f5db942fe2
            firstName: Jane
            lastName: Doe
          allOf:
            - $ref: '#/components/schemas/PersonNameDisplayModel'
      required:
        - id
        - partnerId
        - activityType
        - metadata
        - changedAt
        - changedBy
    CreateTeamDto:
      type: object
      properties:
        name:
          type: string
          example: Nursing Staff
        description:
          type: string
          example: Handles patient care
        color:
          type: string
          example: '#FF5733'
        icon:
          type: string
          example: stethoscope
        type:
          enum:
            - department
            - general
          type: string
      required:
        - name
        - type
    TeamDisplayModel:
      type: object
      properties:
        name:
          type: string
          example: Nursing Staff
        description:
          type: string
          example: Handles patient care
        color:
          type: string
          example: '#FF5733'
        icon:
          type: string
          example: stethoscope
        type:
          enum:
            - department
            - general
          type: string
        id:
          type: string
          example: 05429248-9b06-4d8f-adde-464a41b79beb
        code:
          type: string
          example: nursing_staff
        organization:
          $ref: '#/components/schemas/OrganizationDisplayModel'
        auditInfo:
          $ref: '#/components/schemas/AuditInfoDto'
        activeInfo:
          $ref: '#/components/schemas/ActiveInfoDto'
      required:
        - name
        - type
        - id
        - code
        - organization
        - auditInfo
        - activeInfo
    AddTeamMemberDto:
      type: object
      properties:
        personId:
          type: string
          description: Person ID
          example: 2e7a1229-e4c4-44db-a514-33e476425809
      required:
        - personId
    TeamPersonDto:
      type: object
      properties:
        id:
          type: string
          example: a01c8f0c-95a1-4e94-b6c7-5074f95cd745
        firstName:
          type: string
          example: string
        lastName:
          type: string
          example: string
        emailAddress:
          type: string
          example: string
      required:
        - id
        - firstName
        - lastName
        - emailAddress
    TeamMemberDisplayModel:
      type: object
      properties:
        id:
          type: string
          example: d98edc3a-6e81-442e-8961-37bc3a819d63
        teamId:
          type: string
          example: 51bcf06d-9195-4eb1-ba73-d5b930ffd9fc
        person:
          $ref: '#/components/schemas/TeamPersonDto'
        joinedAt:
          format: date-time
          type: string
          example: '2025-03-10T16:54:13.337Z'
        addedByPerson:
          type: string
          nullable: true
          example: ffa24dd5-a925-4a06-b5d9-b49c9fa81c9a
      required:
        - id
        - teamId
        - person
        - joinedAt
        - addedByPerson
    VendorProfilePreviewModel:
      type: object
      properties:
        id:
          type: string
          example: 884b7b3f-1cc2-44e9-8ae9-62c8a966916e
        name:
          type: string
          example: string
        source:
          type: string
          example: anelto
        description:
          type: string
          example: string
        auditInfo:
          $ref: '#/components/schemas/AuditInfoDto'
        activeInfo:
          $ref: '#/components/schemas/ActiveInfoDto'
      required:
        - id
        - name
        - source
        - auditInfo
        - activeInfo
    VendorPasswordDto:
      type: object
      properties:
        passwordReference:
          type: string
          example: string
        secretsManagerArn:
          type: string
          example: string
      required:
        - passwordReference
        - secretsManagerArn
    VendorTokenDto:
      type: object
      properties:
        value:
          type: string
          example: string
        issuedAt:
          format: date-time
          type: string
          example: '2026-03-04T17:27:04.740Z'
        expiresAt:
          format: date-time
          type: string
          example: '2026-03-04T17:27:04.740Z'
    VendorCredentialInfoDto:
      type: object
      properties:
        username:
          type: string
          example: user-name
        password:
          $ref: '#/components/schemas/VendorPasswordDto'
        token:
          $ref: '#/components/schemas/VendorTokenDto'
      required:
        - username
        - password
    OrganizationVendorProfileDisplayModel:
      type: object
      properties:
        id:
          type: string
          example: 884b7b3f-1cc2-44e9-8ae9-62c8a966916e
        name:
          type: string
          example: string
        source:
          type: string
          example: anelto
        description:
          type: string
          example: string
        credentialInfo:
          $ref: '#/components/schemas/VendorCredentialInfoDto'
        auditInfo:
          $ref: '#/components/schemas/AuditInfoDto'
        activeInfo:
          $ref: '#/components/schemas/ActiveInfoDto'
        type:
          type: string
          enum:
            - vendor-profile
            - anelto-credential
      required:
        - id
        - name
        - source
        - auditInfo
        - activeInfo
        - type
    AddVendorCredentialInfoDto:
      type: object
      properties:
        username:
          type: string
        password:
          type: string
      required:
        - username
        - password
    AddVendorProfileDto:
      type: object
      properties:
        name:
          type: string
          example: string
        source:
          type: string
          example: anelto
          enum:
            - anelto
            - essence
        description:
          type: string
          example: string
        credentialInfo:
          $ref: '#/components/schemas/AddVendorCredentialInfoDto'
      required:
        - name
        - source
        - credentialInfo
    VendorProfileDisplayModel:
      type: object
      properties:
        id:
          type: string
          example: 884b7b3f-1cc2-44e9-8ae9-62c8a966916e
        name:
          type: string
          example: string
        source:
          type: string
          example: anelto
        description:
          type: string
          example: string
        credentialInfo:
          $ref: '#/components/schemas/VendorCredentialInfoDto'
        auditInfo:
          $ref: '#/components/schemas/AuditInfoDto'
        activeInfo:
          $ref: '#/components/schemas/ActiveInfoDto'
      required:
        - id
        - name
        - source
        - auditInfo
        - activeInfo
    JsonPatchDocumentItemDto:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/JsonPatchDocumentDto'
      required:
        - items
    AuditTrailDisplayModel:
      type: object
      properties:
        id:
          type: string
          example: 0c63abc5-9e73-436c-a194-244c601c6e94
        entityId:
          type: string
          example: d10f2c3e-040a-41ec-928e-38ab91b482db
        organizationId:
          type: string
          example: 271c1a28-7a61-4df6-8f5d-5b144f994150
        entityTableName:
          type: string
          example: string
        action:
          type: string
          example: string
        newValue:
          type: object
          example: null
        modifiedAt:
          format: date-time
          type: string
          example: '2026-03-04T17:27:05.972Z'
        modifiedBy:
          type: string
          example: b7567ac8-4233-4017-861b-6786d7fcc911
        metadata:
          type: object
          example: null
      required:
        - id
        - entityId
        - organizationId
        - entityTableName
        - action
        - newValue
        - modifiedAt
        - modifiedBy
        - metadata
    ApptivoPayloadDisplayModel:
      type: object
      properties:
        id:
          type: string
          example: 512e7e55-e999-4635-93ce-0d07e783ee34
        eventName:
          type: string
          example: string
        isProcessed:
          type: boolean
          example: true
        errorMessage:
          type: string
          example: string
        payload:
          type: object
          example: {}
        retryMetadata:
          example:
            - null
          type: array
          items:
            type: string
        createdAt:
          format: date-time
          type: string
          example: '2026-03-04T17:27:06.063Z'
      required:
        - id
        - eventName
        - isProcessed
        - errorMessage
        - payload
        - retryMetadata
        - createdAt
    ChildOrgHierarchyDisplayModel:
      type: object
      properties:
        id:
          type: string
          example: b7eb28dd-7d67-4c2f-b6a1-f718bb4869e3
        businessName:
          type: string
          example: string
        displayName:
          type: string
          example: string
        status:
          type: string
          example: string
        parentId:
          type: string
          example: string
        level:
          type: number
          example: 0
        legacyIdentifier:
          type: string
          example: string
        integrationMetadata:
          type: object
          example:
            key: value
      required:
        - id
        - businessName
        - displayName
        - status
        - parentId
        - level
        - legacyIdentifier
        - integrationMetadata
    OrganizationHierarchyDisplayModel:
      type: object
      properties:
        id:
          type: string
          example: b7eb28dd-7d67-4c2f-b6a1-f718bb4869e3
        businessName:
          type: string
          example: string
        displayName:
          type: string
          example: string
        status:
          type: string
          example: string
        parentId:
          type: string
          example: string
        level:
          type: number
          example: 0
        legacyIdentifier:
          type: string
          example: string
        integrationMetadata:
          type: object
          example:
            key: value
        childOrganizations:
          type: array
          items:
            $ref: '#/components/schemas/ChildOrgHierarchyDisplayModel'
      required:
        - id
        - businessName
        - displayName
        - status
        - parentId
        - level
        - legacyIdentifier
        - integrationMetadata
        - childOrganizations
    ChildStaffOrgHierarchyDisplayModel:
      type: object
      properties:
        id:
          type: string
          example: 70fecf8e-e2f2-4e89-968d-3abcd9f1f665
        level:
          type: number
          example: 0
        displayName:
          type: string
          example: string
        businessName:
          type: string
          example: string
        parentId:
          type: string
          example: string
        type:
          type: string
          example: string
        status:
          type: string
          example: string
        hcoXrefId:
          type: string
          example: string
        integrationMetadata:
          type: object
          example:
            key: value
        archiveInfo:
          $ref: '#/components/schemas/ArchiveInfoDto'
        auditInfo:
          $ref: '#/components/schemas/AuditInfoDto'
        activeInfo:
          $ref: '#/components/schemas/ActiveInfoDto'
        nodes:
          example:
            - 50f42f9e-4269-4ab9-88f1-5c005e51945d
          type: array
          items:
            type: string
        policies:
          example:
            - 488014f5-7c0a-47b4-8e87-ca998bc4b64e
          type: array
          items:
            type: string
        onBoardingPartner:
          type: string
          example: fe7bdfec-7153-409a-8f4b-99f107b69ea0
        timezoneId:
          type: string
          example: string
      required:
        - id
        - level
        - displayName
        - businessName
        - parentId
        - type
        - status
        - hcoXrefId
        - archiveInfo
        - auditInfo
        - activeInfo
        - nodes
        - policies
        - onBoardingPartner
    StaffOrgHierarchyDisplayModel:
      type: object
      properties:
        id:
          type: string
          example: 70fecf8e-e2f2-4e89-968d-3abcd9f1f665
        level:
          type: number
          example: 0
        displayName:
          type: string
          example: string
        businessName:
          type: string
          example: string
        parentId:
          type: string
          example: string
        type:
          type: string
          example: string
        status:
          type: string
          example: string
        hcoXrefId:
          type: string
          example: string
        integrationMetadata:
          type: object
          example:
            key: value
        archiveInfo:
          $ref: '#/components/schemas/ArchiveInfoDto'
        auditInfo:
          $ref: '#/components/schemas/AuditInfoDto'
        activeInfo:
          $ref: '#/components/schemas/ActiveInfoDto'
        nodes:
          example:
            - 50f42f9e-4269-4ab9-88f1-5c005e51945d
          type: array
          items:
            type: string
        policies:
          example:
            - 488014f5-7c0a-47b4-8e87-ca998bc4b64e
          type: array
          items:
            type: string
        onBoardingPartner:
          type: string
          example: fe7bdfec-7153-409a-8f4b-99f107b69ea0
        timezoneId:
          type: string
          example: string
        childOrganizations:
          type: array
          items:
            $ref: '#/components/schemas/ChildStaffOrgHierarchyDisplayModel'
      required:
        - id
        - level
        - displayName
        - businessName
        - parentId
        - type
        - status
        - hcoXrefId
        - archiveInfo
        - auditInfo
        - activeInfo
        - nodes
        - policies
        - onBoardingPartner
        - childOrganizations
    NestedStaffHierarchyDisplayModel:
      type: object
      properties:
        organization:
          $ref: '#/components/schemas/StaffOrgHierarchyDisplayModel'
        assignment:
          type: string
          example: string
      required:
        - organization
        - assignment
    FlatStaffHierarchyDisplayModel:
      type: object
      properties:
        organization:
          $ref: '#/components/schemas/ChildStaffOrgHierarchyDisplayModel'
        assignment:
          type: string
          example: string
      required:
        - organization
        - assignment
    GetByMetadataDto:
      type: object
      properties:
        field:
          type: string
          example: string
        value:
          type: string
          example: string
      required:
        - field
        - value
    DeleteMetadataDto:
      type: object
      properties:
        field:
          type: string
          example: string
      required:
        - field
