Charthop profile-tab API

The profile-tab API from Charthop — 7 operation(s) for profile-tab.

OpenAPI Specification

charthop-profile-tab-api-openapi.yml Raw ↑
swagger: '2.0'
info:
  description: REST API for ChartHop
  version: V1.0.0
  title: ChartHop access profile-tab API
  contact:
    name: ChartHop
    url: https://www.charthop.com
    email: support@charthop.com
host: localhost
schemes:
- https
- http
consumes:
- application/json
produces:
- application/json
tags:
- name: profile-tab
paths:
  /v1/org/{orgId}/profile-tab:
    get:
      tags:
      - profile-tab
      summary: Return all profile tabs in the organization paginated
      operationId: findProfileTabs
      consumes:
      - application/json
      produces:
      - application/json
      parameters:
      - name: orgId
        in: path
        description: Org identifier (either id or slug)
        required: true
        type: string
      - name: status
        in: query
        description: Status to filter by
        required: false
        type: string
        enum:
        - ACTIVE
        - INACTIVE
      - name: from
        in: query
        description: Content id to start paginating from
        required: false
        type: string
      - name: limit
        in: query
        description: Number of results to return
        required: false
        type: integer
        format: int32
      responses:
        '200':
          description: successful operation
          schema:
            $ref: '#/definitions/ResultsProfileTab'
        '400':
          description: bad request
        '401':
          description: not authorized
        '404':
          description: not found
    post:
      tags:
      - profile-tab
      summary: Create a profile tab
      operationId: createProfileTab
      consumes:
      - application/json
      produces:
      - application/json
      parameters:
      - name: orgId
        in: path
        description: Org identifier (either id or slug)
        required: true
        type: string
      - name: body
        in: body
        description: Profile tab data to create
        required: true
        schema:
          $ref: '#/definitions/CreateProfileTab'
      responses:
        '201':
          description: created
          schema:
            $ref: '#/definitions/ProfileTab'
        '400':
          description: invalid data
        '401':
          description: not authorized
        '403':
          description: permission denied
        '404':
          description: org not found
  /v1/org/{orgId}/profile-tab/job/{jobId}:
    get:
      tags:
      - profile-tab
      summary: Return all profile tabs applicable to a particular job
      operationId: findProfileTabsForJob
      consumes:
      - application/json
      produces:
      - application/json
      parameters:
      - name: orgId
        in: path
        description: Org identifier (either id or slug)
        required: true
        type: string
      - name: jobId
        in: path
        description: Job id
        required: true
        type: string
      - name: date
        in: query
        description: Date
        required: false
        type: string
        format: date
      - name: fields
        in: query
        description: Return profile tabs that contain particular fields (comma-separated)
        required: false
        type: string
      - name: formIds
        in: query
        description: Return profile tabs that contain particular formIds (comma-separated)
        required: false
        type: string
      responses:
        '200':
          description: successful operation
          schema:
            $ref: '#/definitions/ResultsProfileTabSummary'
        '400':
          description: bad request
        '401':
          description: not authorized
        '404':
          description: not found
  /v1/org/{orgId}/profile-tab/job/{jobId}/profile-tab/{tabId}:
    get:
      tags:
      - profile-tab
      summary: Fetch and evaluate the content of a particular profile tab id, relative to a particular job
      operationId: evaluateProfileTabForJob
      consumes:
      - application/json
      produces:
      - application/json
      parameters:
      - name: orgId
        in: path
        description: Org identifier (either id or slug)
        required: true
        type: string
      - name: jobId
        in: path
        description: Job id
        required: true
        type: string
      - name: tabId
        in: path
        description: Profile tab id
        required: true
        type: string
      - name: date
        in: query
        description: Date
        required: false
        type: string
        format: date
      responses:
        '200':
          description: successful operation
          schema:
            $ref: '#/definitions/ProfileTabSummary'
        '400':
          description: bad request
        '401':
          description: not authorized
        '404':
          description: not found
  /v1/org/{orgId}/profile-tab/person/{personId}:
    get:
      tags:
      - profile-tab
      summary: Return all profile tabs applicable to a particular person
      operationId: findProfileTabsForPerson
      consumes:
      - application/json
      produces:
      - application/json
      parameters:
      - name: orgId
        in: path
        description: Org identifier (either id or slug)
        required: true
        type: string
      - name: personId
        in: path
        description: Person id
        required: true
        type: string
      - name: date
        in: query
        description: Date
        required: false
        type: string
        format: date
      - name: fields
        in: query
        description: Return profile tabs that contain particular fields (comma-separated)
        required: false
        type: string
      - name: formIds
        in: query
        description: Return profile tabs that contain particular formIds (comma-separated)
        required: false
        type: string
      responses:
        '200':
          description: successful operation
          schema:
            $ref: '#/definitions/ResultsProfileTabSummary'
        '400':
          description: bad request
        '401':
          description: not authorized
        '404':
          description: not found
  /v1/org/{orgId}/profile-tab/person/{personId}/profile-tab/{tabId}:
    get:
      tags:
      - profile-tab
      summary: Fetch and evaluate the content of a particular profile tab id, relative to a particular person
      operationId: evaluateProfileTabForPerson
      consumes:
      - application/json
      produces:
      - application/json
      parameters:
      - name: orgId
        in: path
        description: Org identifier (either id or slug)
        required: true
        type: string
      - name: personId
        in: path
        description: Person id
        required: true
        type: string
      - name: tabId
        in: path
        description: Profile tab id
        required: true
        type: string
      - name: date
        in: query
        description: Date
        required: false
        type: string
        format: date
      responses:
        '200':
          description: successful operation
          schema:
            $ref: '#/definitions/ProfileTabSummary'
        '400':
          description: bad request
        '401':
          description: not authorized
        '404':
          description: not found
  /v1/org/{orgId}/profile-tab/person/{personId}/profile-tab/{tabId}/history:
    get:
      tags:
      - profile-tab
      summary: Evaluate the history (in the form of various cards) on a particular profile tab id, relative to a particular person
      operationId: findProfileTabHistory
      consumes:
      - application/json
      produces:
      - application/json
      parameters:
      - name: orgId
        in: path
        description: Org identifier (either id or slug)
        required: true
        type: string
      - name: personId
        in: path
        description: Person id
        required: true
        type: string
      - name: tabId
        in: path
        description: Profile tab id
        required: true
        type: string
      - name: from
        in: query
        description: Search backwards in time from timestamp
        required: false
        type: string
      - name: limit
        in: query
        description: Number of results to return
        required: false
        type: integer
        format: int32
      - name: returnAccess
        in: query
        description: 'Return access information -- pass a list of actions to check, for example: create,update,delete'
        required: false
        type: string
      - name: format
        in: query
        description: Data format to use; default is json, can also use json-extended or json-readable
        required: false
        type: string
      responses:
        '200':
          description: successful operation
          schema:
            $ref: '#/definitions/ResultsProfileTabResponseCard'
        '400':
          description: bad request
        '401':
          description: not authorized
        '404':
          description: not found
  /v1/org/{orgId}/profile-tab/{profileTabId}:
    get:
      tags:
      - profile-tab
      summary: Return a particular profile tab by id
      operationId: getProfileTab
      consumes:
      - application/json
      produces:
      - application/json
      parameters:
      - name: orgId
        in: path
        description: Org identifier (either id or slug)
        required: true
        type: string
      - name: profileTabId
        in: path
        description: Content id
        required: true
        type: string
      responses:
        '200':
          description: successful operation
          schema:
            $ref: '#/definitions/ProfileTab'
        '400':
          description: bad request
        '404':
          description: not found
    patch:
      tags:
      - profile-tab
      summary: Update an existing profile tab
      operationId: updateProfileTab
      consumes:
      - application/json
      produces:
      - application/json
      parameters:
      - name: orgId
        in: path
        description: Org identifier (either id or slug)
        required: true
        type: string
      - name: profileTabId
        in: path
        description: Profile tab id
        required: true
        type: string
      - name: body
        in: body
        description: Profile tab data to update
        required: true
        schema:
          $ref: '#/definitions/UpdateProfileTab'
      responses:
        '204':
          description: updated
        '400':
          description: invalid data
        '401':
          description: not authorized
        '403':
          description: permission denied
        '404':
          description: not found
    delete:
      tags:
      - profile-tab
      summary: Delete a profile tab
      operationId: deleteProfileTab
      consumes:
      - application/json
      produces:
      - application/json
      parameters:
      - name: orgId
        in: path
        description: Org identifier (either id or slug)
        required: true
        type: string
      - name: profileTabId
        in: path
        description: Profile tab id
        required: true
        type: string
      responses:
        '204':
          description: deleted
        '400':
          description: invalid data
        '401':
          description: not authorized
        '403':
          description: permission denied
        '404':
          description: not found
definitions:
  UpdateProfileTab:
    type: object
    properties:
      label:
        type: string
        description: human-readable name of profile tab
        example: Performance
      labelTr:
        description: translations for the human-readable label
        $ref: '#/definitions/Translations'
      blocks:
        type: array
        description: ordered list of blocks contained by profile tab
        items:
          $ref: '#/definitions/Block'
      layout:
        description: block layout configuration
        $ref: '#/definitions/Layout'
      status:
        type: string
        description: status of the profile tab
        enum:
        - ACTIVE
        - INACTIVE
      targetFilter:
        type: string
        description: filter that controls on which profiles this tab will appear
      readFilter:
        type: string
        description: filter that controls which viewers can read this profile tab. The profileTab:read permission, if present, overrides this filter
      sort:
        type: integer
        format: int32
        description: sort order
  JobUpdate:
    type: object
    properties:
      addRelationships:
        type: array
        description: relationships to add
        uniqueItems: true
        items:
          $ref: '#/definitions/JobRelationship'
      removeRelationships:
        type: array
        description: relationships to remove
        uniqueItems: true
        items:
          $ref: '#/definitions/JobRelationship'
      addGroupIds:
        type: array
        description: groups to add
        uniqueItems: true
        items:
          type: string
          example: 588f7ee98f138b19220041a7
      removeGroupIds:
        type: array
        description: groups to remove
        uniqueItems: true
        items:
          type: string
          example: 588f7ee98f138b19220041a7
      setGroupIds:
        type: object
        description: groups to set
        additionalProperties:
          type: string
          example: 588f7ee98f138b19220041a7
      grant:
        description: stock grant to add
        $ref: '#/definitions/StockGrant'
      timeOff:
        description: time off to add
        $ref: '#/definitions/TimeOff'
      title:
        type: string
        description: new title
        minItems: 1
        maxItems: 160
      comp:
        description: new compensation level
        $ref: '#/definitions/Comp'
      placement:
        type: string
        description: new placement
        enum:
        - NORMAL
        - ASSISTANT
      employment:
        type: string
        description: new employment status
        enum:
        - FULL
        - PART
        - TEMP
        - CONTRACT
        - INTERN
        - EXPAT
      sensitive:
        type: string
        description: new view sensitivity
        enum:
        - GLOBAL
        - ORG
        - SENSITIVE
        - PERSONAL
        - MANAGER
        - HIGH
        - PRIVATE
      startDatePlanned:
        type: string
        format: date
        description: planned start date
      startDatePlannedRemove:
        type: boolean
        description: remove planned start date. if both startDatePlanned and startDatePlannedRemove are set, startDatePlanned takes precedence
      startDate:
        type: string
        format: date
        description: new expected start date - will update to person start date in future
      backfillPersonId:
        type: string
        description: set who this job is backfilling
        example: 588f7ee98f138b19220041a7
      jobCodeId:
        type: string
        description: set (or unset) the job code for this job
        example: 588f7ee98f138b19220041a7
      hasUnsetFields:
        type: boolean
        description: set who this job is backfilling
      fields:
        type: object
        description: custom fields values to set
        additionalProperties:
          type: object
  Translations:
    type: object
    required:
    - values
    properties:
      values:
        type: object
        additionalProperties:
          type: string
  CreateProfileTab:
    type: object
    required:
    - label
    - blocks
    - status
    properties:
      label:
        type: string
        description: human-readable name of profile tab
        example: Performance
      labelTr:
        description: translations for the human-readable label
        $ref: '#/definitions/Translations'
      blocks:
        type: array
        description: ordered list of blocks contained by profile tab
        items:
          $ref: '#/definitions/Block'
      layout:
        description: block layout configuration
        $ref: '#/definitions/Layout'
      status:
        type: string
        description: status of the profile tab
        enum:
        - ACTIVE
        - INACTIVE
      targetFilter:
        type: string
        description: filter that controls on which profiles this tab will appear
      readFilter:
        type: string
        description: filter that controls which viewers can read this profile tab. The profileTab:read permission, if present, overrides this filter
      sort:
        type: integer
        format: int32
        description: sort order
  LayoutRow:
    type: object
    required:
    - columns
    - format
    properties:
      columns:
        type: array
        items:
          $ref: '#/definitions/LayoutColumn'
      format:
        type: string
  ResultsProfileTabResponseCard:
    type: object
    required:
    - data
    properties:
      data:
        type: array
        items:
          $ref: '#/definitions/ProfileTabResponseCard'
      next:
        type: string
      access:
        type: array
        items:
          $ref: '#/definitions/ResultsAccess'
  FormVersionInfo:
    type: object
    required:
    - id
    - label
    - displayName
    - questions
    properties:
      id:
        type: string
        example: 588f7ee98f138b19220041a7
      label:
        type: string
      displayName:
        type: string
      displayNameTr:
        $ref: '#/definitions/Translations'
      questions:
        type: array
        items:
          $ref: '#/definitions/FormQuestionInfo'
  ProfileTabResponseCard:
    type: object
    required:
    - id
    - date
    properties:
      id:
        type: string
        example: 588f7ee98f138b19220041a7
      date:
        type: string
        format: date
      change:
        $ref: '#/definitions/Change'
      formResponse:
        $ref: '#/definitions/FormResponse'
      formVersion:
        $ref: '#/definitions/FormVersionInfo'
  AccessAction:
    type: object
    required:
    - action
    properties:
      action:
        type: string
      fields:
        type: array
        uniqueItems: true
        items:
          type: string
      types:
        type: array
        uniqueItems: true
        items:
          type: string
  PayInterval:
    type: object
    required:
    - interval
    - pay
    properties:
      interval:
        type: string
        description: Interval (annual or hourly)
        enum:
        - YEARLY
        - MONTHLY
        - WEEKLY
        - DAILY
        - HOURLY
      pay:
        description: Pay over the given interval
        $ref: '#/definitions/Money'
      hoursPerWeek:
        type: integer
        format: int32
        description: working hours per week if interval=hourly
        example: '40'
      weeksPerYear:
        type: integer
        format: int32
        description: working weeks per year if interval=hourly
        example: '52'
      monthsPerYear:
        type: integer
        format: int32
        description: months per year if interval=month
        example: '52'
      daysPerYear:
        type: integer
        format: int32
        description: days per year if interval=day
        example: '250'
  Layout:
    type: object
    required:
    - rows
    properties:
      rows:
        type: array
        items:
          $ref: '#/definitions/LayoutRow'
  ResultsProfileTab:
    type: object
    required:
    - data
    properties:
      data:
        type: array
        items:
          $ref: '#/definitions/ProfileTab'
      next:
        type: string
      access:
        type: array
        items:
          $ref: '#/definitions/ResultsAccess'
  FormQuestionInfo:
    type: object
    required:
    - id
    - question
    properties:
      id:
        type: string
        example: 588f7ee98f138b19220041a7
      question:
        type: string
      questionTr:
        $ref: '#/definitions/Translations'
  ProfileTabSummary:
    type: object
    required:
    - id
    - label
    - isBuiltin
    properties:
      id:
        type: string
        example: 588f7ee98f138b19220041a7
      label:
        type: string
      labelTr:
        $ref: '#/definitions/Translations'
      isBuiltin:
        type: boolean
      isSensitive:
        type: boolean
      blocks:
        type: array
        items:
          $ref: '#/definitions/Block'
      layout:
        $ref: '#/definitions/Layout'
  LayoutButton:
    type: object
    required:
    - url
    - label
    properties:
      url:
        type: string
      label:
        type: string
  Attribution:
    type: object
    properties:
      principalUserId:
        type: string
        example: 588f7ee98f138b19220041a7
      agentUserIds:
        type: array
        items:
          type: string
          example: 588f7ee98f138b19220041a7
      eventId:
        type: string
        example: 588f7ee98f138b19220041a7
      aiChatId:
        type: string
        example: 588f7ee98f138b19220041a7
      aiToolUseId:
        type: string
      channel:
        type: string
        enum:
        - WEB
        - MOBILE
        - SLACK
        - TEAMS
        - MCP
  VariableComp:
    type: object
    required:
    - type
    - interval
    properties:
      type:
        type: string
        description: compensation type
        enum:
        - BONUS
        - COMMISSION
      interval:
        type: string
        description: compensation interval
        enum:
        - YEARLY
    description: 'variable compensation

      Implementations: VariableCompPercent, VariableCompPercent'
    discriminator: compType
  Change:
    type: object
    required:
    - id
    - jobId
    - orgId
    - type
    - date
    - status
    properties:
      id:
        type: string
        description: unique id
        example: 588f7ee98f138b19220041a7
      jobId:
        type: string
        description: job id
        example: 588f7ee98f138b19220041a7
      orgId:
        type: string
        description: parent organization id
        example: 588f7ee98f138b19220041a7
      scenarioId:
        type: string
        description: scenario that this change belongs to
        example: 588f7ee98f138b19220041a7
      mergeScenarioId:
        type: string
        description: scenario that this change was merged in from, if the change originally came from a scenario
        example: 588f7ee98f138b19220041a7
      parentChangeId:
        type: string
        description: change that this change emanates from
        example: 588f7ee98f138b19220041a7
      priorStateChangeId:
        type: string
        description: connects this change to a previous version if itself that you might want to roll back to because of bad edits
        example: 588f7ee98f138b19220041a7
      type:
        type: string
        description: type of change
        enum:
        - HIRE
        - DEPART
        - MOVE
        - UPCOMING
        - CREATE
        - UPDATE
        - DATA
        - DELETE
        - RELATE
        - BACKFILL
      date:
        type: string
        format: date
        description: date of change
      sort:
        type: integer
        format: int64
        description: sort order of change
      announceDate:
        type: string
        format: date
        description: for HIRE and DEPART changes, the announce date, if the announce date is different from the date of change
      status:
        type: string
        description: whether the change is active or not
        enum:
        - ACTIVE
        - STRUCK
        - CONFLICT
        - INACTIVE
        - PROPOSED
      personId:
        type: string
        description: the id of the person involved, or empty if no person attached to job
        example: 588f7ee98f138b19220041a7
      otherJobId:
        type: string
        description: for MOVE changes, the id of the job moving from; for RELATE changes, the id of the other job
        example: 588f7ee98f138b19220041a7
      otherPersonId:
        type: string
        description: for MOVE changes, the id of the other person involved in the move
        example: 588f7ee98f138b19220041a7
      departType:
        type: string
        description: for DEPART changes, the type of departure
        enum:
        - VOLUNTARY
        - INVOLUNTARY
      departRegret:
        type: string
        description: for DEPART changes, whether the departure was regrettable
        enum:
        - REGRET
        - NONREGRET
      promotionType:
        type: string
        description: if it's a promotion or a demotion
        enum:
        - PROMOTION
        - DEMOTION
        - NONE
      reason:
        type: string
        description: the reason for the change
      relateType:
        type: string
        description: for RELATE changes, the type of the relationship
        enum:
        - MANAGER
        - DIRECT
        - INDIRECT_MANAGER
        - INDIRECT
        - NONE
      refs:
        type: array
        description: list of ids referenced in text field body, for indexing purposes only
        items:
          type: object
      job:
        description: for CREATE changes, the initial job data; for other changes, the title and groups at the time of change
        $ref: '#/definitions/PartialJob'
      otherJob:
        description: if otherJobId present, contains title and person.startDate of the other job at the time of change
        $ref: '#/definitions/PartialJob'
      formId:
        type: string
        description: if this change was data submitted by a form, the id of that form
        example: 588f7ee98f138b19220041a7
      formResponseId:
        type: string
        description: if this change is associated with a form response, the id of that form response
        example: 588f7ee98f138b19220041a7
      assessmentId:
        type: string
        description: if this change is associated with a assessment, the id of that assessment
        example: 588f7ee98f138b19220041a7
      update:
        description: for UPDATE changes, the data being updated
        $ref: '#/definitions/JobUpdate'
      upcoming:
        description: for UPCOMING changes, the change ahead
        $ref: '#/definitions/UpcomingChange'
      conflict:
        type: string
        description: for changes that have been struck due to a merge conflict, the description of the conflict
      note:
        type: string
        description: note on the change
      createId:
        type: string
        description: created by user id
        example: 588f7ee98f138b19220041a7
      createBehalfId:
        type: string
        description: created on behalf of user id
        example: 588f7ee98f138b19220041a7
      createAttribution:
        description: attribution for the create
        $ref: '#/definitions/Attribution'
      mergeId:
        type: string
        description: merged by user id, if this change was merged
        example: 588f7ee98f138b19220041a7
      createAt:
        type: string
        description: created timestamp
        example: '2017-01-24T13:57:52Z'
      updateAt:
        type: string
        description: updated timestamp
        example: '2017-01-24T13:57:52Z'
      updateId:
        type: string
        description: updated by user id
        example: 588f7ee98f138b19220041a7
      updateBehalfId:
        type: string
        description: last updated on behalf of user id
        example: 588f7ee98f138b19220041a7
      updateAttribution:
        description: attribution for the last update
        $ref: '#/definitions/Attribution'
      statusAt:
        type: string
        description: timestamp of status change
      approvalAt:
        type: string
        description: timestamp of approval
      approvalId:
        type: string
        description: approved by user id
        example: 588f7ee98f138b19220041a7
      approvalNote:
        type: string
        description: approval/rejection note
        example: Not acceptable
      approval:
        type: string
        description: if approval is required, who is allowed to approve
        enum:
        - MANAGER
        - GRAND_MANAGER
      authorSensitive:
        type: string
        description: view sensitivity for the author author of this form - the level of view access required to view the createId and updateId fields
        enum:
        - GLOBAL
        - ORG
        - SENSITIVE
        - PERSONAL
        - MANAGER
        - HIGH
        - PRIVATE
      canEdit:
        type: boolean
        description: flag indicating whether authorized user can modify this change (will vary depending on user)
  TimeOff:
    type: object
    required:
    - id
    - startDate
    - endDate
    properties:
      id:
        type: string
        description: unique id of a time off request
      startDate:
        type: string
        format: date
        description: start date of time off, inclusive
      endDate:
        type: string
        format: date
        description: end date of time off, inclusive
      days:
        type: number
        description: number of days used
      hours:
        type: number
        description: number of hours used
      type:
        type: string
        description: type of time off
      note:
        type: string
        description: notes on the time off
      approval:
        type: string
        description: approval status of the time off
        enum:
        - APPROVED
        - PENDING
        - CANCELLED
        - REJECTED
        - SUPERSEDED
  ResultsAccess:
    type: object
    required:
    - allowed
    properties:
      ids:
        type: array
        uniqueItems: true
        items:
          type: string
          example: 588f7ee98f138b19220041a7
      allowed:
        type: array
        uniqueItems: true
        items:
          $ref: '#/definitions/AccessAction'
  FormResponse:
    type: object
    required:
    - id
    properties:
      id:
        type: string
        description: globally unique id
        example: 588f7ee98f138b19220041a7
      orgId:
        type: string
        description: parent organization id
        example: 588f7ee98f138b19220041a7
      externalId:
        type: string
        description: if the response was imported from an external system, the unique identifier of the response from that system
        example: google:1234567890
      formId:
        type: string
        description: form id that the response is a response for
        example: 588f7ee98f138b19220041a7
      formVersionId:
        type: string
        description: form version id that the response is a response for
        example: 588f7ee98f138b19220041a7
      submitPersonId:
        type: string
        description: person id who filled out the form response (null if anonymous)
        example: 588f7ee98f138b19220041a7
      submitUserId:
        type: string
        description: user id who filled out the form response (can be null if anonymous or imported data)
        example: 588f7ee98f138b19220041a7
      submitAttribution:
        description: attribution information, if an agent completed the form on behalf of a principal
        $ref: '#/definitions/Attribution'
      changeId:
        type: string
        description: change id, if the form response is linked to a DATA change
        example: 588f7ee98f138b19220041a7
      assessmentId:
        type: string
        description: assessment id, if the form response is related to an assesment
        example: 588f7ee98f138b19220041a7
      createProcessId:
        type: string
        description: process id, if the form response was created from an import process
        example: 588f7ee98f138b19220041a7
      updateProcessId:
        type: string
        description: process id, if the form response was updated from an import process
        example: 588f7ee98f138b19220041a7
      shareAccess:
        type: array
        description: list of share access, if the form response has been shared with anyone
        items:
          $ref: '#/definitions/ShareAccess'
      authorSensitive:
        type: string
        description: sensitivity level of the author of the form response, if it differs from the form response
        enum:
        - ANONYMOUS
        - PRIVATE
        - HIGH
        - MANAGER
      authorData:
        type: object
        description: demographic field data connected with the author of the form response
        additionalProperties:
          type: object
      targetEntityId:
        type: string
        description: target entity id -- the entity that the form response is about
    

# --- truncated at 32 KB (51 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/charthop/refs/heads/main/openapi/charthop-profile-tab-api-openapi.yml