openapi: 3.1.0
info:
  title: OpenCRVS API
  description: OpenCRVS Events API — for full documentation, see
    [https://documentation.opencrvs.org](https://documentation.opencrvs.org)
  version: 2.0.0
servers:
  - url: http://localhost:3000/api/events
paths:
  /events/reindex:
    post:
      operationId: event-reindex-trigger
      summary: Triggers reindexing of search, workqueues and notifies country config
      tags:
        - Events
      security:
        - Authorization: []
      parameters: []
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                waitForCompletion:
                  default: true
                  type: boolean
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema: {}
        "400": &a1
          description: Invalid input data
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/error.BAD_REQUEST"
        "401": &a2
          description: Authorization not provided
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/error.UNAUTHORIZED"
        "403": &a3
          description: Insufficient access
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/error.FORBIDDEN"
        "500": &a4
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/error.INTERNAL_SERVER_ERROR"
    get:
      operationId: event-reindex-status
      summary: Returns the status of current and past reindexing calls
      tags:
        - Events
      security:
        - Authorization: []
      parameters:
        - in: query
          name: limit
          schema:
            type: integer
            minimum: 1
            maximum: 100
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    timestamp:
                      type: string
                      format: date-time
                      pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                    status:
                      type: string
                      enum:
                        - running
                        - completed
                        - failed
                    progress:
                      type: object
                      properties:
                        processed:
                          type: integer
                          minimum: -9007199254740991
                          maximum: 9007199254740991
                      required:
                        - processed
                      additionalProperties: false
                    error_message:
                      anyOf:
                        - type: string
                        - type: "null"
                    completed_at:
                      anyOf:
                        - type: string
                          format: date-time
                          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                        - type: "null"
                  required:
                    - id
                    - timestamp
                    - status
                    - progress
                    - error_message
                    - completed_at
                  additionalProperties: false
        "400": *a1
        "401": *a2
        "403": *a3
        "404": &a5
          description: Not found
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/error.NOT_FOUND"
        "500": *a4
  /config:
    get:
      operationId: event-config-get
      summary: List event configurations
      tags:
        - Events
      security:
        - Authorization: []
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/EventConfig"
        "401": *a2
        "403": *a3
        "500": *a4
  /events:
    post:
      operationId: event-create
      summary: Create event
      tags:
        - Events
      security:
        - Authorization: []
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                transactionId:
                  type: string
                type:
                  type: string
                createdAtLocation:
                  description: Location where the event occurred. Required for system users.
                  anyOf:
                    - type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    - type: "null"
              required:
                - transactionId
                - type
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EventDocument"
        "400": *a1
        "401": *a2
        "403": *a3
        "500": *a4
  /events/{eventId}:
    get:
      operationId: event-get
      summary: Fetch full event document
      tags:
        - Events
      security:
        - Authorization: []
      parameters:
        - in: path
          name: eventId
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          required: true
        - in: query
          name: customActionType
          schema:
            type: string
        - in: query
          name: waitFor
          schema:
            default: true
            description: Whether the action should wait for the event to be indexed before
              returning. Defaults to true. Setting this to false completes
              faster but might lead to stale data in the client if the client
              tries to read the event immediately after performing the action.
              Use with care.
            type: boolean
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EventDocument"
        "400": *a1
        "401": *a2
        "403": *a3
        "404": *a5
        "500": *a4
  /events/{eventId}/notify:
    post:
      operationId: event-actions-notify-request
      summary: Notify an event
      tags:
        - Events
      security:
        - Authorization: []
      parameters:
        - in: path
          name: eventId
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          required: true
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                transactionId:
                  type: string
                declaration:
                  default: {}
                  type: object
                  propertyNames:
                    type: string
                  additionalProperties:
                    description: Value that matches exactly one of the possible schema types
                      (TextValue, DateValue, DateRangeFieldValue). The best
                      matching schema is chosen by priority.
                  description: Record of field-level changes made by an action. Supports partial
                    updates and nullable values.
                annotation:
                  type: object
                  propertyNames:
                    type: string
                  additionalProperties:
                    description: Value that matches exactly one of the possible schema types
                      (TextValue, DateValue, DateRangeFieldValue). The best
                      matching schema is chosen by priority.
                  description: Record of field-level changes made by an action. Supports partial
                    updates and nullable values.
                originalActionId:
                  type: string
                  format: uuid
                  pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                keepAssignment:
                  type: boolean
                keepAssignmentIfAccepted:
                  type: boolean
                keepAssignmentIfRejected:
                  type: boolean
                waitFor:
                  default: true
                  description: Whether action waits for the indexing before returning. Defaults to
                    true. Setting this to to false completes faster but might
                    lead to stale data in the client if the client tries to read
                    the event immediately after performing the action. Use with
                    care.
                  type: boolean
                createdAtLocation:
                  description: A valid office location ID. This is required for system users
                    performing actions. The provided location must be a
                    leaf-location, i.e. it must not have any children locations.
                  anyOf:
                    - type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    - type: "null"
                type:
                  default: NOTIFY
                  type: string
                  const: NOTIFY
              required:
                - transactionId
              additionalProperties: false
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EventDocument"
        "400": *a1
        "401": *a2
        "403": *a3
        "500": *a4
  /events/notify:
    post:
      operationId: event-actions-createAndNotify-request
      summary: Create an event and immediately notify (single request, system clients
        only)
      tags:
        - Events
      security:
        - Authorization: []
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                transactionId:
                  type: string
                declaration:
                  default: {}
                  type: object
                  propertyNames:
                    type: string
                  additionalProperties:
                    description: Value that matches exactly one of the possible schema types
                      (TextValue, DateValue, DateRangeFieldValue). The best
                      matching schema is chosen by priority.
                  description: Record of field-level changes made by an action. Supports partial
                    updates and nullable values.
                annotation:
                  type: object
                  propertyNames:
                    type: string
                  additionalProperties:
                    description: Value that matches exactly one of the possible schema types
                      (TextValue, DateValue, DateRangeFieldValue). The best
                      matching schema is chosen by priority.
                  description: Record of field-level changes made by an action. Supports partial
                    updates and nullable values.
                originalActionId:
                  type: string
                  format: uuid
                  pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                keepAssignment:
                  type: boolean
                keepAssignmentIfAccepted:
                  type: boolean
                keepAssignmentIfRejected:
                  type: boolean
                waitFor:
                  default: true
                  description: Whether action waits for the indexing before returning. Defaults to
                    true. Setting this to to false completes faster but might
                    lead to stale data in the client if the client tries to read
                    the event immediately after performing the action. Use with
                    care.
                  type: boolean
                createdAtLocation:
                  type: string
                  format: uuid
                  pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  description: A valid office location ID. Required. The provided location must be
                    a leaf-location, i.e. it must not have any child locations.
                eventType:
                  type: string
              required:
                - transactionId
                - createdAtLocation
                - eventType
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EventDocument"
        "400": *a1
        "401": *a2
        "403": *a3
        "500": *a4
  /events/{eventId}/correction/request:
    post:
      operationId: event-actions-correction-request-request
      summary: Request correction for an event
      tags:
        - Events
      security:
        - Authorization: []
      parameters:
        - in: path
          name: eventId
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          required: true
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                transactionId:
                  type: string
                declaration:
                  default: {}
                  type: object
                  propertyNames:
                    type: string
                  additionalProperties:
                    description: Value that matches exactly one of the possible schema types
                      (TextValue, DateValue, DateRangeFieldValue). The best
                      matching schema is chosen by priority.
                  description: Record of field-level changes made by an action. Supports partial
                    updates and nullable values.
                annotation:
                  type: object
                  propertyNames:
                    type: string
                  additionalProperties:
                    description: Value that matches exactly one of the possible schema types
                      (TextValue, DateValue, DateRangeFieldValue). The best
                      matching schema is chosen by priority.
                  description: Record of field-level changes made by an action. Supports partial
                    updates and nullable values.
                originalActionId:
                  type: string
                  format: uuid
                  pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                keepAssignment:
                  type: boolean
                keepAssignmentIfAccepted:
                  type: boolean
                keepAssignmentIfRejected:
                  type: boolean
                waitFor:
                  default: true
                  description: Whether action waits for the indexing before returning. Defaults to
                    true. Setting this to to false completes faster but might
                    lead to stale data in the client if the client tries to read
                    the event immediately after performing the action. Use with
                    care.
                  type: boolean
                createdAtLocation:
                  description: A valid office location ID. This is required for system users
                    performing actions. The provided location must be a
                    leaf-location, i.e. it must not have any children locations.
                  anyOf:
                    - type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    - type: "null"
                type:
                  default: REQUEST_CORRECTION
                  type: string
                  const: REQUEST_CORRECTION
              required:
                - transactionId
              additionalProperties: false
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EventDocument"
        "400": *a1
        "401": *a2
        "403": *a3
        "500": *a4
  /events/{eventId}/correction/approve:
    post:
      operationId: event-actions-correction-approve-request
      summary: Approve correction for an event
      tags:
        - Events
      security:
        - Authorization: []
      parameters:
        - in: path
          name: eventId
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          required: true
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                transactionId:
                  type: string
                declaration:
                  default: {}
                  type: object
                  propertyNames:
                    type: string
                  additionalProperties:
                    description: Value that matches exactly one of the possible schema types
                      (TextValue, DateValue, DateRangeFieldValue). The best
                      matching schema is chosen by priority.
                  description: Record of field-level changes made by an action. Supports partial
                    updates and nullable values.
                annotation:
                  type: object
                  propertyNames:
                    type: string
                  additionalProperties:
                    description: Value that matches exactly one of the possible schema types
                      (TextValue, DateValue, DateRangeFieldValue). The best
                      matching schema is chosen by priority.
                  description: Record of field-level changes made by an action. Supports partial
                    updates and nullable values.
                originalActionId:
                  type: string
                  format: uuid
                  pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                keepAssignment:
                  type: boolean
                keepAssignmentIfAccepted:
                  type: boolean
                keepAssignmentIfRejected:
                  type: boolean
                waitFor:
                  default: true
                  description: Whether action waits for the indexing before returning. Defaults to
                    true. Setting this to to false completes faster but might
                    lead to stale data in the client if the client tries to read
                    the event immediately after performing the action. Use with
                    care.
                  type: boolean
                createdAtLocation:
                  description: A valid office location ID. This is required for system users
                    performing actions. The provided location must be a
                    leaf-location, i.e. it must not have any children locations.
                  anyOf:
                    - type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    - type: "null"
                requestId:
                  type: string
                type:
                  default: APPROVE_CORRECTION
                  type: string
                  const: APPROVE_CORRECTION
              required:
                - transactionId
                - requestId
              additionalProperties: false
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EventDocument"
        "400": *a1
        "401": *a2
        "403": *a3
        "500": *a4
  /events/{eventId}/correction/reject:
    post:
      operationId: event-actions-correction-reject-request
      summary: Reject correction for an event
      tags:
        - Events
      security:
        - Authorization: []
      parameters:
        - in: path
          name: eventId
          schema:
            type: string
            format: uuid
            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          required: true
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                transactionId:
                  type: string
                declaration:
                  default: {}
                  type: object
                  propertyNames:
                    type: string
                  additionalProperties:
                    description: Value that matches exactly one of the possible schema types
                      (TextValue, DateValue, DateRangeFieldValue). The best
                      matching schema is chosen by priority.
                  description: Record of field-level changes made by an action. Supports partial
                    updates and nullable values.
                annotation:
                  type: object
                  propertyNames:
                    type: string
                  additionalProperties:
                    description: Value that matches exactly one of the possible schema types
                      (TextValue, DateValue, DateRangeFieldValue). The best
                      matching schema is chosen by priority.
                  description: Record of field-level changes made by an action. Supports partial
                    updates and nullable values.
                originalActionId:
                  type: string
                  format: uuid
                  pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                keepAssignment:
                  type: boolean
                keepAssignmentIfAccepted:
                  type: boolean
                keepAssignmentIfRejected:
                  type: boolean
                waitFor:
                  default: true
                  description: Whether action waits for the indexing before returning. Defaults to
                    true. Setting this to to false completes faster but might
                    lead to stale data in the client if the client tries to read
                    the event immediately after performing the action. Use with
                    care.
                  type: boolean
                createdAtLocation:
                  description: A valid office location ID. This is required for system users
                    performing actions. The provided location must be a
                    leaf-location, i.e. it must not have any children locations.
                  anyOf:
                    - type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    - type: "null"
                requestId:
                  type: string
                type:
                  default: REJECT_CORRECTION
                  type: string
                  const: REJECT_CORRECTION
                content:
                  type: object
                  properties:
                    reason:
                      type: string
                      minLength: 1
                      description: Message describing the reason for rejecting or archiving the event.
                  required:
                    - reason
              required:
                - transactionId
                - requestId
                - content
              additionalProperties: false
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EventDocument"
        "400": *a1
        "401": *a2
        "403": *a3
        "500": *a4
  /events/search:
    post:
      operationId: event-search
      summary: Search for events
      tags:
        - Search
      security:
        - Authorization: []
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                query:
                  $ref: "#/components/schemas/QueryType"
                limit:
                  default: 100
                  type: number
                offset:
                  default: 0
                  type: number
                sort:
                  type: array
                  items:
                    type: object
                    properties:
                      field:
                        type: string
                      direction:
                        default: asc
                        type: string
                        enum:
                          - asc
                          - desc
                    required:
                      - field
              required:
                - query
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  results:
                    type: array
                    items:
                      $ref: "#/components/schemas/EventIndex"
                  total:
                    type: number
                required:
                  - results
                  - total
                additionalProperties: false
        "400": *a1
        "401": *a2
        "403": *a3
        "500": *a4
  /locations:
    get:
      operationId: locations-list
      summary: List locations
      description: Retrieve a list of locations based on provided filters.
      tags:
        - Locations
      security:
        - Authorization: []
      parameters:
        - in: query
          name: isActive
          schema:
            type: boolean
        - in: query
          name: locationIds
          schema:
            type: array
            items:
              type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        - in: query
          name: locationType
          schema:
            type: string
        - in: query
          name: externalId
          schema:
            type: string
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    name:
                      type: string
                    externalId:
                      anyOf:
                        - type: string
                        - type: "null"
                    administrativeAreaId:
                      anyOf:
                        - type: string
                          format: uuid
                          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                        - type: "null"
                    validUntil:
                      anyOf:
                        - type: string
                          format: date-time
                          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                        - type: "null"
                    locationType:
                      anyOf:
                        - type: string
                        - type: "null"
                  required:
                    - id
                    - name
                    - administrativeAreaId
                    - validUntil
                    - locationType
                  additionalProperties: false
        "400": *a1
        "401": *a2
        "403": *a3
        "404": *a5
        "500": *a4
  /integrations:
    post:
      operationId: integrations-create
      summary: Create a new integration client
      tags:
        - Integrations
      security:
        - Authorization: []
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  minLength: 1
                scopes:
                  minItems: 1
                  type: array
                  items:
                    type: string
              required:
                - name
                - scopes
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  clientId:
                    type: string
                  shaSecret:
                    type: string
                  clientSecret:
                    type: string
                required:
                  - clientId
                  - shaSecret
                  - clientSecret
                additionalProperties: false
        "400": *a1
        "401": *a2
        "403": *a3
        "500": *a4
    get:
      operationId: integrations-list
      summary: List integration clients
      tags:
        - Integrations
      security:
        - Authorization: []
      parameters:
        - in: query
          name: status
          schema:
            type: string
            enum:
              - active
              - disabled
      responses:
        "200":
          description: Successful response
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: string
                    name:
                      type: string
                    scopes:
                      type: array
                      items:
                        type: string
                    status:
                      type: string
                    createdAt:
                      type: string
                      format: date-time
                      pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                    createdBy:
                      type: string
                      format: uuid
                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  required:
                    - id
                    - name
                    - scopes
                    - status
                    - createdAt
                    - createdBy
                  additionalProperties: false
        "400": *a1
        "401": *a2
        "403": *a3
        "404": *a5
        "500": *a4
  /attachments:
    post:
      summary: Upload a file attachment
      tags:
        - Attachments
      security:
        - bearerAuth:
            - attachment.upload
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                path:
                  type: string
                  description: Optional path in S3 where the file should be stored
                transactionId:
                  type: string
                  description: Transaction ID
                file:
                  type: string
                  format: binary
                  description: File to upload
              required:
                - transactionId
                - file
      responses:
        "200":
          description: File uploaded successfully. Requires authentication and
            attachment.upload scope.
          content:
            application/json:
              schema:
                type: object
                properties:
                  result:
                    type: object
                    properties:
                      data:
                        type: object
                        properties:
                          json:
                            type: string
components:
  schemas:
    QueryType:
      type: object
      properties:
        type:
          anyOf:
            - type: string
              const: and
            - type: string
              const: or
          default: and
        clauses:
          minItems: 1
          type: array
          items:
            anyOf:
              - $ref: "#/components/schemas/QueryExpression"
              - $ref: "#/components/schemas/QueryType"
          default:
            - eventType: tennis-club-membership
              status:
                type: anyOf
                terms:
                  - CREATED
                  - NOTIFIED
                  - DECLARED
                  - REGISTERED
                  - ARCHIVED
              updatedAt:
                type: range
                gte: 2025-05-22
                lte: 2025-05-29
              data: {}
      required:
        - type
        - clauses
    QueryExpression:
      type: object
      properties:
        id:
          type: string
        eventType:
          type: string
        status:
          anyOf:
            - $ref: "#/components/schemas/AnyOfStatus"
            - $ref: "#/components/schemas/ExactStatus"
        createdAt:
          $ref: "#/components/schemas/DateCondition"
        updatedAt:
          $ref: "#/components/schemas/DateCondition"
        legalStatuses.DECLARED.createdAtLocation:
          anyOf:
            - $ref: "#/components/schemas/Within"
            - type: "null"
        legalStatuses.DECLARED.createdByRole:
          $ref: "#/components/schemas/AnyOf"
        legalStatuses.REGISTERED.acceptedAt:
          $ref: "#/components/schemas/DateCondition"
        legalStatuses.REGISTERED.createdAtLocation:
          anyOf:
            - $ref: "#/components/schemas/Within"
            - type: "null"
        legalStatuses.REGISTERED.createdByRole:
          $ref: "#/components/schemas/AnyOf"
        legalStatuses.REGISTERED.registrationNumber:
          $ref: "#/components/schemas/Exact"
        createdAtLocation:
          anyOf:
            - $ref: "#/components/schemas/Within"
            - $ref: "#/components/schemas/Exact"
        updatedAtLocation:
          anyOf:
            - $ref: "#/components/schemas/Within"
            - $ref: "#/components/schemas/Exact"
        assignedTo:
          $ref: "#/components/schemas/Exact"
        createdByUserType:
          $ref: "#/components/schemas/ExactUserType"
        updatedByUserRole:
          $ref: "#/components/schemas/Exact"
        createdBy:
          $ref: "#/components/schemas/Exact"
        updatedBy:
          $ref: "#/components/schemas/Exact"
        trackingId:
          $ref: "#/components/schemas/Exact"
        flags:
          $ref: "#/components/schemas/ContainsFlags"
        data:
          $ref: "#/components/schemas/QueryInput"
    AnyOfStatus:
      type: object
      properties:
        type:
          type: string
          const: anyOf
        terms:
          type: array
          items:
            type: string
            enum:
              - CREATED
              - NOTIFIED
              - DECLARED
              - REGISTERED
              - ARCHIVED
      required:
        - type
        - terms
    ExactStatus:
      type: object
      properties:
        type:
          type: string
          const: exact
        term:
          type: string
          enum:
            - CREATED
            - NOTIFIED
            - DECLARED
            - REGISTERED
            - ARCHIVED
      required:
        - type
        - term
    DateCondition:
      anyOf:
        - $ref: "#/components/schemas/ExactDate"
        - $ref: "#/components/schemas/RangeDate"
        - $ref: "#/components/schemas/TimePeriod"
    ExactDate:
      type: object
      properties:
        type:
          type: string
          const: exact
        term:
          anyOf:
            - type: string
              format: date
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
      required:
        - type
        - term
    RangeDate:
      type: object
      properties:
        type:
          type: string
          const: range
        gte:
          anyOf:
            - type: string
              format: date
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
        lte:
          anyOf:
            - type: string
              format: date
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
      required:
        - type
        - gte
        - lte
    TimePeriod:
      type: object
      properties:
        type:
          type: string
          const: timePeriod
        term:
          type: string
          enum:
            - last7Days
            - last30Days
            - last90Days
            - last365Days
      required:
        - type
        - term
    Within:
      type: object
      properties:
        type:
          type: string
          const: within
        location:
          type: string
      required:
        - type
        - location
    AnyOf:
      type: object
      properties:
        type:
          type: string
          const: anyOf
        terms:
          type: array
          items:
            type: string
      required:
        - type
        - terms
    Exact:
      type: object
      properties:
        type:
          type: string
          const: exact
        term:
          type: string
      required:
        - type
        - term
    ExactUserType:
      type: object
      properties:
        type:
          type: string
          const: exact
        term:
          type: string
          enum:
            - user
            - system
      required:
        - type
        - term
    ContainsFlags:
      type: object
      properties:
        anyOf:
          type: array
          items:
            anyOf:
              - anyOf:
                  - type: string
                    pattern: ^(delete|create|notify|declare|register|edit|duplicate_detected|reject|mark_as_duplicate|mark_as_not_duplicate|archive|print_certificate|request_correction|reject_correction|approve_correction|read|assign|unassign|custom):(requested|accepted|rejected)$
                  - type: string
                    enum:
                      - incomplete
                      - rejected
                      - correction-requested
                      - potential-duplicate
                      - edit-in-progress
              - type: string
                description: Custom flag identifier defined by the country config.
        noneOf:
          type: array
          items:
            anyOf:
              - anyOf:
                  - type: string
                    pattern: ^(delete|create|notify|declare|register|edit|duplicate_detected|reject|mark_as_duplicate|mark_as_not_duplicate|archive|print_certificate|request_correction|reject_correction|approve_correction|read|assign|unassign|custom):(requested|accepted|rejected)$
                  - type: string
                    enum:
                      - incomplete
                      - rejected
                      - correction-requested
                      - potential-duplicate
                      - edit-in-progress
              - type: string
                description: Custom flag identifier defined by the country config.
    QueryInput:
      anyOf:
        - oneOf:
            - $ref: "#/components/schemas/Fuzzy"
            - $ref: "#/components/schemas/Exact"
            - $ref: "#/components/schemas/Range"
            - $ref: "#/components/schemas/Within"
            - $ref: "#/components/schemas/AnyOf"
          type: object
          discriminator:
            propertyName: type
            mapping:
              fuzzy: "#/components/schemas/Fuzzy"
              exact: "#/components/schemas/Exact"
              range: "#/components/schemas/Range"
              within: "#/components/schemas/Within"
              anyOf: "#/components/schemas/AnyOf"
        - type: object
          propertyNames:
            type: string
          additionalProperties:
            $ref: "#/components/schemas/QueryInput"
    Fuzzy:
      type: object
      properties:
        type:
          type: string
          const: fuzzy
        term:
          type: string
      required:
        - type
        - term
    Range:
      type: object
      properties:
        type:
          type: string
          const: range
        gte:
          type: string
        lte:
          type: string
      required:
        - type
        - gte
        - lte
    TranslationConfig:
      type: object
      properties:
        id:
          type: string
          description: The identifier of the translation referred in translation CSV files
        defaultMessage:
          type: string
          description: Default translation message
        description:
          type: string
          description: Describe the translation for a translator to be able to identify it.
      required:
        - id
        - defaultMessage
        - description
      description: Translation configuration
    WorkqueueColumn:
      type: object
      properties:
        label:
          $ref: "#/components/schemas/TranslationConfig"
        value:
          type: object
          properties:
            $event:
              type: string
              enum:
                - id
                - type
                - status
                - createdAt
                - dateOfEvent
                - placeOfEvent
                - createdBy
                - createdByUserType
                - updatedByUserRole
                - createdAtLocation
                - updatedAtLocation
                - updatedAt
                - assignedTo
                - updatedBy
                - trackingId
                - legalStatuses
                - flags
                - title
                - outbox
          required:
            - $event
      required:
        - label
        - value
      description: Configuration for a single workqueue column. The value references
        an event metadata key (e.g. `dateOfEvent`, `status`, `trackingId`).
    error.BAD_REQUEST:
      type: object
      properties:
        message:
          type: string
          description: The error message
          example: Invalid input data
        code:
          type: string
          description: The error code
          example: BAD_REQUEST
        issues:
          description: An array of issues that were responsible for the error
          example: []
          type: array
          items:
            type: object
            properties:
              message:
                type: string
            required:
              - message
            additionalProperties: false
      required:
        - message
        - code
      additionalProperties: false
      title: Invalid input data error (400)
      description: The error information
      example:
        code: BAD_REQUEST
        message: Invalid input data
        issues: []
    error.UNAUTHORIZED:
      type: object
      properties:
        message:
          type: string
          description: The error message
          example: Authorization not provided
        code:
          type: string
          description: The error code
          example: UNAUTHORIZED
        issues:
          description: An array of issues that were responsible for the error
          example: []
          type: array
          items:
            type: object
            properties:
              message:
                type: string
            required:
              - message
            additionalProperties: false
      required:
        - message
        - code
      additionalProperties: false
      title: Authorization not provided error (401)
      description: The error information
      example:
        code: UNAUTHORIZED
        message: Authorization not provided
        issues: []
    error.FORBIDDEN:
      type: object
      properties:
        message:
          type: string
          description: The error message
          example: Insufficient access
        code:
          type: string
          description: The error code
          example: FORBIDDEN
        issues:
          description: An array of issues that were responsible for the error
          example: []
          type: array
          items:
            type: object
            properties:
              message:
                type: string
            required:
              - message
            additionalProperties: false
      required:
        - message
        - code
      additionalProperties: false
      title: Insufficient access error (403)
      description: The error information
      example:
        code: FORBIDDEN
        message: Insufficient access
        issues: []
    error.INTERNAL_SERVER_ERROR:
      type: object
      properties:
        message:
          type: string
          description: The error message
          example: Internal server error
        code:
          type: string
          description: The error code
          example: INTERNAL_SERVER_ERROR
        issues:
          description: An array of issues that were responsible for the error
          example: []
          type: array
          items:
            type: object
            properties:
              message:
                type: string
            required:
              - message
            additionalProperties: false
      required:
        - message
        - code
      additionalProperties: false
      title: Internal server error error (500)
      description: The error information
      example:
        code: INTERNAL_SERVER_ERROR
        message: Internal server error
        issues: []
    error.NOT_FOUND:
      type: object
      properties:
        message:
          type: string
          description: The error message
          example: Not found
        code:
          type: string
          description: The error code
          example: NOT_FOUND
        issues:
          description: An array of issues that were responsible for the error
          example: []
          type: array
          items:
            type: object
            properties:
              message:
                type: string
            required:
              - message
            additionalProperties: false
      required:
        - message
        - code
      additionalProperties: false
      title: Not found error (404)
      description: The error information
      example:
        code: NOT_FOUND
        message: Not found
        issues: []
    EventConfig:
      type: object
      properties:
        id:
          type: string
          description: Machine-readable identifier of the event (e.g. "birth", "death").
        dateOfEvent:
          description: Reference to the field capturing the date of the event (e.g. date
            of birth). Defaults to the event creation date if unspecified.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field by its ID
            - type: object
              properties:
                $$event:
                  type: string
                  enum:
                    - createdAt
                    - updatedAt
                    - legalStatuses.DECLARED.createdAt
                    - legalStatuses.DECLARED.acceptedAt
                    - legalStatuses.REGISTERED.createdAt
                    - legalStatuses.REGISTERED.acceptedAt
              required:
                - $$event
              additionalProperties: false
              description: Reference to a field defined in the event metadata, using the field
                id.
        placeOfEvent:
          description: Reference to the field capturing the place of the event (e.g. place
            of birth). Defaults to the meta.createdAtLocation if unspecified.
          type: object
          properties:
            $$field:
              type: string
              description: Id of the field to reference
            $$subfield:
              default: []
              description: 'If the FieldValue is an object, subfield can be used to refer to
                e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
              type: array
              items:
                type: string
          required:
            - $$field
            - $$subfield
          additionalProperties: false
        title:
          description: Title template for the singular event, supporting variables (e.g.
            "{applicant.name.firstname} {applicant.name.surname}").
          $ref: "#/components/schemas/TranslationConfigOutput"
        fallbackTitle:
          description: Fallback title shown when the main title resolves to an empty value.
          $ref: "#/components/schemas/TranslationConfigOutput"
        summary:
          description: Summary information displayed in the event overview.
          $ref: "#/components/schemas/SummaryConfig"
        label:
          description: Human-readable label for the event type.
          $ref: "#/components/schemas/TranslationConfigOutput"
        actions:
          type: array
          items:
            $ref: "#/components/schemas/ActionConfig"
          description: Configuration of core and custom actions associated with the event.
        actionOrder:
          description: Order of actions in the action menu. Use either the action type for
            core actions or the customActionType for custom actions.
          type: array
          items:
            type: string
        declaration:
          description: Configuration of the form used to gather event data.
          $ref: "#/components/schemas/DeclarationFormConfig"
        advancedSearch:
          default: []
          description: Configuration of fields available in the advanced search feature.
          type: array
          items:
            $ref: "#/components/schemas/AdvancedSearchConfig"
        flags:
          default: []
          description: Configuration of custom flags associated with the actions of this
            event type.
          type: array
          items:
            $ref: "#/components/schemas/FlagConfig"
        analytics:
          default: true
          description: Indicates whether the records of this event type are included in
            analytics
          type: boolean
      required:
        - id
        - title
        - summary
        - label
        - actions
        - declaration
        - advancedSearch
        - flags
        - analytics
      additionalProperties: false
      description: Configuration defining an event type registered in OpenCRVS (for
        example birth or death).
    Conditional:
      description: JSON schema conditional configuration
    SummaryConfig:
      type: object
      properties:
        fields:
          type: array
          items:
            anyOf:
              - type: object
                properties:
                  emptyValueMessage:
                    description: Default message displayed when the field value is empty.
                    $ref: "#/components/schemas/TranslationConfigOutput"
                  conditionals:
                    default: []
                    type: array
                    items:
                      type: object
                      properties:
                        type:
                          type: string
                          const: SHOW
                        conditional:
                          $ref: "#/components/schemas/Conditional"
                      required:
                        - type
                        - conditional
                      additionalProperties: false
                      description: If 'SHOW' conditional is defined, the component is shown to the
                        user only if the condition is met
                  id:
                    type: string
                    description: Identifier of the summary field.
                  value:
                    description: Field value template supporting variables from configuration and
                      EventMetadata (e.g. "{informant.phoneNo}
                      {informant.email}").
                    $ref: "#/components/schemas/TranslationConfigOutput"
                  label:
                    $ref: "#/components/schemas/TranslationConfigOutput"
                required:
                  - id
                  - value
                  - label
                additionalProperties: false
                description: Custom field defined for the summary view.
              - type: object
                properties:
                  emptyValueMessage:
                    description: Default message displayed when the field value is empty.
                    $ref: "#/components/schemas/TranslationConfigOutput"
                  conditionals:
                    default: []
                    type: array
                    items:
                      type: object
                      properties:
                        type:
                          type: string
                          const: SHOW
                        conditional:
                          $ref: "#/components/schemas/Conditional"
                      required:
                        - type
                        - conditional
                      additionalProperties: false
                      description: If 'SHOW' conditional is defined, the component is shown to the
                        user only if the condition is met
                  fieldId:
                    type: string
                  label:
                    description: Overrides the default label from the referenced field when
                      provided.
                    $ref: "#/components/schemas/TranslationConfigOutput"
                required:
                  - fieldId
                additionalProperties: false
                description: Field referencing existing event data by field ID.
          description: Fields displayed in the event summary view.
      required:
        - fields
      additionalProperties: false
      description: Configuration of the event overview page. Defines which declaration
        fields appear in the record summary, optionally with custom labels,
        empty-value messages, and templated values.
    ActionConfig:
      oneOf:
        - $ref: "#/components/schemas/ReadActionConfig"
        - $ref: "#/components/schemas/DeclareActionConfig"
        - $ref: "#/components/schemas/RejectActionConfig"
        - $ref: "#/components/schemas/RegisterActionConfig"
        - $ref: "#/components/schemas/PrintCertificateActionConfig"
        - $ref: "#/components/schemas/RequestCorrectionActionConfig"
        - $ref: "#/components/schemas/EditActionConfig"
        - $ref: "#/components/schemas/ArchiveActionConfig"
        - $ref: "#/components/schemas/CustomActionConfig"
      description: Configuration of an action available for an event. Data collected
        depends on the action type and is accessible through the annotation
        property in ActionDocument.
      type: object
      discriminator:
        propertyName: type
        mapping:
          READ: "#/components/schemas/ReadActionConfig"
          DECLARE: "#/components/schemas/DeclareActionConfig"
          REJECT: "#/components/schemas/RejectActionConfig"
          REGISTER: "#/components/schemas/RegisterActionConfig"
          PRINT_CERTIFICATE: "#/components/schemas/PrintCertificateActionConfig"
          REQUEST_CORRECTION: "#/components/schemas/RequestCorrectionActionConfig"
          EDIT: "#/components/schemas/EditActionConfig"
          ARCHIVE: "#/components/schemas/ArchiveActionConfig"
          CUSTOM: "#/components/schemas/CustomActionConfig"
    ReadActionConfig:
      type: object
      properties:
        label:
          description: Human readable description of the action
          $ref: "#/components/schemas/TranslationConfigOutput"
        flags:
          default: []
          description: Flag actions which are executed when the action is performed.
          type: array
          items:
            $ref: "#/components/schemas/ActionFlagConfig"
        supportingCopy:
          description: Text displayed on the confirmation dialog
          $ref: "#/components/schemas/TranslationConfigOutput"
        icon:
          type: string
          description: Icon representing the action
        conditionals:
          description: Read-action can not be disabled or hidden with conditionals.
          not: {}
        type:
          type: string
          const: READ
        review:
          type: object
          properties:
            title:
              description: Title of the review page
              $ref: "#/components/schemas/TranslationConfigOutput"
            fields:
              type: array
              items:
                $ref: "#/components/schemas/FieldConfig"
              description: Fields displayed on the review page for annotations.
          required:
            - title
            - fields
          additionalProperties: false
          description: Configuration of the review page for read-only view.
      required:
        - label
        - flags
        - type
        - review
      additionalProperties: false
      description: Configuration for the read action — defines the record-tab content
        displayed on the event overview page.
    ActionFlagConfig:
      type: object
      properties:
        id:
          anyOf:
            - anyOf:
                - type: string
                  pattern: ^(delete|create|notify|declare|register|edit|duplicate_detected|reject|mark_as_duplicate|mark_as_not_duplicate|archive|print_certificate|request_correction|reject_correction|approve_correction|read|assign|unassign|custom):(requested|accepted|rejected)$
                - type: string
                  enum:
                    - incomplete
                    - rejected
                    - correction-requested
                    - potential-duplicate
                    - edit-in-progress
            - type: string
              description: Custom flag identifier defined by the country config.
        operation:
          type: string
          enum:
            - add
            - remove
          description: Operation to perform on the flag.
        conditional:
          description: When conditional is met, the operation is performed on the flag. If
            not provided, the operation is performed unconditionally.
          $ref: "#/components/schemas/Conditional"
      required:
        - id
        - operation
      additionalProperties: false
      description: Add or remove operation applied to a flag when the parent action is
        accepted. Optionally gated by a conditional.
    FieldConfig:
      oneOf:
        - $ref: "#/components/schemas/FieldGroup"
        - $ref: "#/components/schemas/Address"
        - $ref: "#/components/schemas/TextField"
        - $ref: "#/components/schemas/NumberField"
        - $ref: "#/components/schemas/NumberWithUnitField"
        - $ref: "#/components/schemas/TextAreaField"
        - $ref: "#/components/schemas/AgeField"
        - $ref: "#/components/schemas/DateField"
        - $ref: "#/components/schemas/TimeField"
        - $ref: "#/components/schemas/DateRangeField"
        - $ref: "#/components/schemas/SelectDateRangeField"
        - $ref: "#/components/schemas/ImageViewField"
        - $ref: "#/components/schemas/Paragraph"
        - $ref: "#/components/schemas/Heading"
        - $ref: "#/components/schemas/RadioGroup"
        - $ref: "#/components/schemas/BulletList"
        - $ref: "#/components/schemas/PageHeader"
        - $ref: "#/components/schemas/Select"
        - $ref: "#/components/schemas/NameField"
        - $ref: "#/components/schemas/PhoneField"
        - $ref: "#/components/schemas/IdField"
        - $ref: "#/components/schemas/Checkbox"
        - $ref: "#/components/schemas/File"
        - $ref: "#/components/schemas/Country"
        - $ref: "#/components/schemas/AdministrativeAreaField"
        - $ref: "#/components/schemas/Divider"
        - $ref: "#/components/schemas/LocationInput"
        - type: object
          properties:
            id:
              type: string
              description: Unique identifier of the field.
            label:
              description: Human-readable label of the field.
              $ref: "#/components/schemas/TranslationConfigOutput"
            parent:
              description: Reference to the parent field or fields. When a parent field
                changes, this field is reset.
              anyOf:
                - type: object
                  properties:
                    $$field:
                      type: string
                      description: Id of the field to reference
                    $$subfield:
                      default: []
                      description: 'If the FieldValue is an object, subfield can be used to refer to
                        e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                      type: array
                      items:
                        type: string
                  required:
                    - $$field
                    - $$subfield
                  additionalProperties: false
                  description: Reference to a field by its ID
                - type: array
                  items:
                    type: object
                    properties:
                      $$field:
                        type: string
                        description: Id of the field to reference
                      $$subfield:
                        default: []
                        description: 'If the FieldValue is an object, subfield can be used to refer to
                          e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                        type: array
                        items:
                          type: string
                    required:
                      - $$field
                      - $$subfield
                    additionalProperties: false
                    description: Reference to a field by its ID
            required:
              description: Indicates whether the field is mandatory.
              default: false
              anyOf:
                - type: boolean
                - type: object
                  properties:
                    message:
                      description: Custom required validation message
                      $ref: "#/components/schemas/TranslationConfigOutput"
                  required:
                    - message
                  additionalProperties: false
            conditionals:
              description: Conditions determining when the field is shown or enabled. By
                default, the field is always shown and enabled.
              default: []
              type: array
              items:
                $ref: "#/components/schemas/FieldConditional"
            secured:
              description: Indicates whether the field is secured. Secured fields are not
                indexed for search and are only visible when explicitly
                assigned.
              default: false
              type: boolean
            placeholder:
              $ref: "#/components/schemas/TranslationConfigOutput"
            validation:
              description: Additional validation rules applied to the field.
              default: []
              type: array
              items:
                $ref: "#/components/schemas/ValidationConfig"
            helperText:
              $ref: "#/components/schemas/TranslationConfigOutput"
            hideLabel:
              default: false
              type: boolean
            uncorrectable:
              description: Indicates whether the field can be modified during record
                correction.
              default: false
              type: boolean
            value:
              description: Reference to the source field or fields. When a value is defined,
                it is copied from the parent field when changed. If multiple
                references are provided, the first truthy value is used.
              anyOf:
                - type: object
                  properties:
                    $$field:
                      type: string
                      description: Id of the field to reference
                    $$subfield:
                      default: []
                      description: 'If the FieldValue is an object, subfield can be used to refer to
                        e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                      type: array
                      items:
                        type: string
                  required:
                    - $$field
                    - $$subfield
                  additionalProperties: false
                  description: Reference to a field by its ID
                - type: array
                  items:
                    type: object
                    properties:
                      $$field:
                        type: string
                        description: Id of the field to reference
                      $$subfield:
                        default: []
                        description: 'If the FieldValue is an object, subfield can be used to refer to
                          e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                        type: array
                        items:
                          type: string
                    required:
                      - $$field
                      - $$subfield
                    additionalProperties: false
                    description: Reference to a field by its ID
            analytics:
              description: Indicates whether the field is included in analytics. When enabled,
                its value becomes available in the analytics dashboard.
              default: false
              type: boolean
            type:
              type: string
              const: FACILITY
            defaultValue:
              type: string
              minLength: 1
            configuration:
              type: object
              properties:
                allowedLocations:
                  description: Limits which location options are selectable depending on user
                    jurisdiction and location.
                  type: object
                  properties:
                    $jurisdiction:
                      anyOf:
                        - type: string
                          enum:
                            - administrativeArea
                            - location
                            - all
                          description: Filters based on user jurisdiction relative to their office
                            location in hierarchy.
                        - type: object
                          properties:
                            $scope:
                              type: string
                              enum:
                                - organisation.read-locations
                                - user.read
                                - user.create
                                - user.edit
                                - user.search
                                - record.search
                                - record.create
                                - record.read
                                - record.declare
                                - record.notify
                                - record.edit
                                - record.reject
                                - record.archive
                                - record.review-duplicates
                                - record.register
                                - record.print-certified-copies
                                - record.request-correction
                                - record.correct
                                - record.unassign-others
                                - record.custom-action
                                - bypassratelimit
                                - record.reindex
                                - user.data-seeding
                                - integration.create
                                - record.import
                                - config.update-all
                                - attachment.upload
                                - profile.electronic-signature
                                - user.read-only-my-audit
                                - performance.read
                                - performance.read-dashboards
                                - performance.vital-statistics-export
                                - record.confirm-registration
                                - record.reject-registration
                                - workqueue
                                - dashboard.view
                            $option:
                              type: string
                              enum:
                                - event
                                - placeOfEvent
                                - declaredIn
                                - declaredBy
                                - registeredIn
                                - registeredBy
                                - accessLevel
                                - role
                                - ids
                          required:
                            - $scope
                            - $option
                          additionalProperties: false
                  required:
                    - $jurisdiction
                  additionalProperties: false
              additionalProperties: false
          required:
            - id
            - label
            - type
          additionalProperties: false
          description: Input field for a facility
        - type: object
          properties:
            id:
              type: string
              description: Unique identifier of the field.
            label:
              description: Human-readable label of the field.
              $ref: "#/components/schemas/TranslationConfigOutput"
            parent:
              description: Reference to the parent field or fields. When a parent field
                changes, this field is reset.
              anyOf:
                - type: object
                  properties:
                    $$field:
                      type: string
                      description: Id of the field to reference
                    $$subfield:
                      default: []
                      description: 'If the FieldValue is an object, subfield can be used to refer to
                        e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                      type: array
                      items:
                        type: string
                  required:
                    - $$field
                    - $$subfield
                  additionalProperties: false
                  description: Reference to a field by its ID
                - type: array
                  items:
                    type: object
                    properties:
                      $$field:
                        type: string
                        description: Id of the field to reference
                      $$subfield:
                        default: []
                        description: 'If the FieldValue is an object, subfield can be used to refer to
                          e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                        type: array
                        items:
                          type: string
                    required:
                      - $$field
                      - $$subfield
                    additionalProperties: false
                    description: Reference to a field by its ID
            required:
              description: Indicates whether the field is mandatory.
              default: false
              anyOf:
                - type: boolean
                - type: object
                  properties:
                    message:
                      description: Custom required validation message
                      $ref: "#/components/schemas/TranslationConfigOutput"
                  required:
                    - message
                  additionalProperties: false
            conditionals:
              description: Conditions determining when the field is shown or enabled. By
                default, the field is always shown and enabled.
              default: []
              type: array
              items:
                $ref: "#/components/schemas/FieldConditional"
            secured:
              description: Indicates whether the field is secured. Secured fields are not
                indexed for search and are only visible when explicitly
                assigned.
              default: false
              type: boolean
            placeholder:
              $ref: "#/components/schemas/TranslationConfigOutput"
            validation:
              description: Additional validation rules applied to the field.
              default: []
              type: array
              items:
                $ref: "#/components/schemas/ValidationConfig"
            helperText:
              $ref: "#/components/schemas/TranslationConfigOutput"
            hideLabel:
              default: false
              type: boolean
            uncorrectable:
              description: Indicates whether the field can be modified during record
                correction.
              default: false
              type: boolean
            value:
              description: Reference to the source field or fields. When a value is defined,
                it is copied from the parent field when changed. If multiple
                references are provided, the first truthy value is used.
              anyOf:
                - type: object
                  properties:
                    $$field:
                      type: string
                      description: Id of the field to reference
                    $$subfield:
                      default: []
                      description: 'If the FieldValue is an object, subfield can be used to refer to
                        e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                      type: array
                      items:
                        type: string
                  required:
                    - $$field
                    - $$subfield
                  additionalProperties: false
                  description: Reference to a field by its ID
                - type: array
                  items:
                    type: object
                    properties:
                      $$field:
                        type: string
                        description: Id of the field to reference
                      $$subfield:
                        default: []
                        description: 'If the FieldValue is an object, subfield can be used to refer to
                          e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                        type: array
                        items:
                          type: string
                    required:
                      - $$field
                      - $$subfield
                    additionalProperties: false
                    description: Reference to a field by its ID
            analytics:
              description: Indicates whether the field is included in analytics. When enabled,
                its value becomes available in the analytics dashboard.
              default: false
              type: boolean
            type:
              type: string
              const: OFFICE
            defaultValue:
              type: string
              minLength: 1
            configuration:
              type: object
              properties:
                allowedLocations:
                  description: Limits which location options are selectable depending on user
                    jurisdiction and location.
                  type: object
                  properties:
                    $jurisdiction:
                      anyOf:
                        - type: string
                          enum:
                            - administrativeArea
                            - location
                            - all
                          description: Filters based on user jurisdiction relative to their office
                            location in hierarchy.
                        - type: object
                          properties:
                            $scope:
                              type: string
                              enum:
                                - organisation.read-locations
                                - user.read
                                - user.create
                                - user.edit
                                - user.search
                                - record.search
                                - record.create
                                - record.read
                                - record.declare
                                - record.notify
                                - record.edit
                                - record.reject
                                - record.archive
                                - record.review-duplicates
                                - record.register
                                - record.print-certified-copies
                                - record.request-correction
                                - record.correct
                                - record.unassign-others
                                - record.custom-action
                                - bypassratelimit
                                - record.reindex
                                - user.data-seeding
                                - integration.create
                                - record.import
                                - config.update-all
                                - attachment.upload
                                - profile.electronic-signature
                                - user.read-only-my-audit
                                - performance.read
                                - performance.read-dashboards
                                - performance.vital-statistics-export
                                - record.confirm-registration
                                - record.reject-registration
                                - workqueue
                                - dashboard.view
                            $option:
                              type: string
                              enum:
                                - event
                                - placeOfEvent
                                - declaredIn
                                - declaredBy
                                - registeredIn
                                - registeredBy
                                - accessLevel
                                - role
                                - ids
                          required:
                            - $scope
                            - $option
                          additionalProperties: false
                  required:
                    - $jurisdiction
                  additionalProperties: false
              additionalProperties: false
          required:
            - id
            - label
            - type
          additionalProperties: false
          description: Input field for an office
        - $ref: "#/components/schemas/SignatureField"
        - $ref: "#/components/schemas/EmailField"
        - $ref: "#/components/schemas/FileUploadWithOptions"
        - $ref: "#/components/schemas/DataField"
        - $ref: "#/components/schemas/ButtonField"
        - $ref: "#/components/schemas/AlphaPrintButton"
        - $ref: "#/components/schemas/HttpField"
        - $ref: "#/components/schemas/AutocompleteField"
        - $ref: "#/components/schemas/LinkButtonField"
        - $ref: "#/components/schemas/VerificationStatus"
        - $ref: "#/components/schemas/QrReaderField"
        - $ref: "#/components/schemas/IdReaderField"
        - $ref: "#/components/schemas/QueryParamReaderField"
        - $ref: "#/components/schemas/LoaderField"
        - $ref: "#/components/schemas/SearchField"
        - $ref: "#/components/schemas/CustomField"
        - $ref: "#/components/schemas/HiddenField"
        - $ref: "#/components/schemas/UserRoleField"
      description: Form field configuration
      type: object
    FieldGroup:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the field.
        label:
          description: Human-readable label of the field.
          $ref: "#/components/schemas/TranslationConfigOutput"
        parent:
          description: Reference to the parent field or fields. When a parent field
            changes, this field is reset.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field by its ID
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field by its ID
        required:
          description: Indicates whether the field is mandatory.
          default: false
          anyOf:
            - type: boolean
            - type: object
              properties:
                message:
                  description: Custom required validation message
                  $ref: "#/components/schemas/TranslationConfigOutput"
              required:
                - message
              additionalProperties: false
        conditionals:
          description: Conditions determining when the field is shown or enabled. By
            default, the field is always shown and enabled.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/FieldConditional"
        secured:
          description: Indicates whether the field is secured. Secured fields are not
            indexed for search and are only visible when explicitly assigned.
          default: false
          type: boolean
        placeholder:
          $ref: "#/components/schemas/TranslationConfigOutput"
        validation:
          description: Additional validation rules applied to the field.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/ValidationConfig"
        helperText:
          $ref: "#/components/schemas/TranslationConfigOutput"
        hideLabel:
          default: false
          type: boolean
        uncorrectable:
          description: Indicates whether the field can be modified during record correction.
          default: false
          type: boolean
        value:
          description: Reference to the source field or fields. When a value is defined,
            it is copied from the parent field when changed. If multiple
            references are provided, the first truthy value is used.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field by its ID
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field by its ID
        analytics:
          description: Indicates whether the field is included in analytics. When enabled,
            its value becomes available in the analytics dashboard.
          default: false
          type: boolean
        type:
          type: string
          const: FIELD_GROUP
        fields:
          type: array
          items:
            $ref: "#/components/schemas/FieldConfig"
      required:
        - id
        - label
        - type
        - fields
      additionalProperties: false
      description: A group of fields that are displayed together
    FieldConditional:
      oneOf:
        - type: object
          properties:
            type:
              type: string
              const: SHOW
            conditional:
              $ref: "#/components/schemas/Conditional"
          required:
            - type
            - conditional
          additionalProperties: false
          description: If 'SHOW' conditional is defined, the component is shown to the
            user only if the condition is met
        - type: object
          properties:
            type:
              type: string
              const: ENABLE
            conditional:
              $ref: "#/components/schemas/Conditional"
          required:
            - type
            - conditional
          additionalProperties: false
          description: If 'ENABLE' conditional is defined, the component is enabled only
            if the condition is met
        - type: object
          properties:
            type:
              type: string
              const: DISPLAY_ON_REVIEW
            conditional:
              $ref: "#/components/schemas/Conditional"
          required:
            - type
            - conditional
          additionalProperties: false
          description: If 'DISPLAY_ON_REVIEW' conditional is defined, the component is
            shown on the review page only if both the 'DISPLAY_ON_REVIEW' and
            'SHOW' conditions are met. This should only be used for fields
            within declaration forms, as they are the only ones with review
            pages.
      description: Conditional gating whether a form field is shown (SHOW), enabled
        (ENABLE), or displayed on the review page (DISPLAY_ON_REVIEW). When
        omitted, the field is shown and enabled for everyone, and is displayed
        on review whenever it has a value.
      type: object
    ValidationConfig:
      type: object
      properties:
        validator:
          description: Conditional expression that must hold for the field value to be
            considered valid.
          $ref: "#/components/schemas/Conditional"
        message:
          description: Error message displayed when the validator does not hold.
          $ref: "#/components/schemas/TranslationConfigOutput"
      required:
        - validator
        - message
      additionalProperties: false
      description: Validation rule applied to a form field. The validator is a
        conditional expression that must hold for the field value to be
        considered valid.
    Address:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the field.
        label:
          description: Human-readable label of the field.
          $ref: "#/components/schemas/TranslationConfigOutput"
        parent:
          description: Reference to the parent field or fields. When a parent field
            changes, this field is reset.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field by its ID
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field by its ID
        required:
          description: Indicates whether the field is mandatory.
          default: false
          anyOf:
            - type: boolean
            - type: object
              properties:
                message:
                  description: Custom required validation message
                  $ref: "#/components/schemas/TranslationConfigOutput"
              required:
                - message
              additionalProperties: false
        conditionals:
          description: Conditions determining when the field is shown or enabled. By
            default, the field is always shown and enabled.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/FieldConditional"
        secured:
          description: Indicates whether the field is secured. Secured fields are not
            indexed for search and are only visible when explicitly assigned.
          default: false
          type: boolean
        placeholder:
          $ref: "#/components/schemas/TranslationConfigOutput"
        validation:
          description: Additional validation rules applied to the field.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/ValidationConfig"
        helperText:
          $ref: "#/components/schemas/TranslationConfigOutput"
        hideLabel:
          default: false
          type: boolean
        uncorrectable:
          description: Indicates whether the field can be modified during record correction.
          default: false
          type: boolean
        value:
          description: Reference to the source field or fields. When a value is defined,
            it is copied from the parent field when changed. If multiple
            references are provided, the first truthy value is used.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field by its ID
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field by its ID
        analytics:
          description: Indicates whether the field is included in analytics. When enabled,
            its value becomes available in the analytics dashboard.
          default: false
          type: boolean
        type:
          type: string
          const: ADDRESS
        configuration:
          type: object
          properties:
            lineSeparator:
              type: string
            fields:
              type: array
              items:
                anyOf:
                  - type: object
                    properties:
                      id:
                        type: string
                        description: Unique identifier of the field.
                      type:
                        type: string
                        const: COUNTRY
                      label:
                        description: Human-readable label of the field.
                        $ref: "#/components/schemas/TranslationConfigOutput"
                      conditionals:
                        description: Conditions determining when the field is shown or enabled. By
                          default, the field is always shown and enabled.
                        default: []
                        type: array
                        items:
                          $ref: "#/components/schemas/FieldConditional"
                      required:
                        description: Indicates whether the field is mandatory.
                        default: false
                        anyOf:
                          - type: boolean
                          - type: object
                            properties:
                              message:
                                description: Custom required validation message
                                $ref: "#/components/schemas/TranslationConfigOutput"
                            required:
                              - message
                            additionalProperties: false
                      optionOverrides:
                        description: Conditionals for specific countries. Countries not listed are
                          always shown and enabled.
                        type: array
                        items:
                          type: object
                          properties:
                            value:
                              type: string
                              description: The value of the option
                            conditionals:
                              default: []
                              type: array
                              items:
                                $ref: "#/components/schemas/ActionConditional"
                          required:
                            - value
                          additionalProperties: false
                    required:
                      - id
                      - type
                    additionalProperties: false
                  - type: object
                    properties:
                      id:
                        type: string
                        description: Unique identifier of the field.
                      type:
                        type: string
                        const: ADMINISTRATIVE_AREA
                      label:
                        description: Human-readable label of the field.
                        $ref: "#/components/schemas/TranslationConfigOutput"
                      conditionals:
                        description: Conditions determining when the field is shown or enabled. By
                          default, the field is always shown and enabled.
                        default: []
                        type: array
                        items:
                          $ref: "#/components/schemas/FieldConditional"
                      required:
                        description: Indicates whether the field is mandatory.
                        default: false
                        anyOf:
                          - type: boolean
                          - type: object
                            properties:
                              message:
                                description: Custom required validation message
                                $ref: "#/components/schemas/TranslationConfigOutput"
                            required:
                              - message
                            additionalProperties: false
                    required:
                      - id
                      - type
                    additionalProperties: false
            streetAddressForm:
              type: array
              items:
                type: object
                properties:
                  id:
                    type: string
                  required:
                    default: false
                    anyOf:
                      - type: boolean
                      - type: object
                        properties:
                          message:
                            description: Custom required validation message
                            $ref: "#/components/schemas/TranslationConfigOutput"
                        required:
                          - message
                        additionalProperties: false
                  label:
                    $ref: "#/components/schemas/TranslationConfigOutput"
                  type:
                    type: string
                    const: TEXT
                  conditionals:
                    default: []
                    type: array
                    items:
                      $ref: "#/components/schemas/FieldConditional"
                  parent:
                    type: object
                    properties:
                      $$field:
                        type: string
                        description: Id of the field to reference
                      $$subfield:
                        default: []
                        description: 'If the FieldValue is an object, subfield can be used to refer to
                          e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                        type: array
                        items:
                          type: string
                    required:
                      - $$field
                      - $$subfield
                    additionalProperties: false
                    description: Reference to a field by its ID
                required:
                  - id
                  - label
                  - type
                additionalProperties: false
            allowedLocations:
              description: Limits which location options are selectable depending on user
                jurisdiction and location.
              type: object
              properties:
                $jurisdiction:
                  anyOf:
                    - type: string
                      enum:
                        - administrativeArea
                        - location
                        - all
                      description: Filters based on user jurisdiction relative to their office
                        location in hierarchy.
                    - type: object
                      properties:
                        $scope:
                          type: string
                          enum:
                            - organisation.read-locations
                            - user.read
                            - user.create
                            - user.edit
                            - user.search
                            - record.search
                            - record.create
                            - record.read
                            - record.declare
                            - record.notify
                            - record.edit
                            - record.reject
                            - record.archive
                            - record.review-duplicates
                            - record.register
                            - record.print-certified-copies
                            - record.request-correction
                            - record.correct
                            - record.unassign-others
                            - record.custom-action
                            - bypassratelimit
                            - record.reindex
                            - user.data-seeding
                            - integration.create
                            - record.import
                            - config.update-all
                            - attachment.upload
                            - profile.electronic-signature
                            - user.read-only-my-audit
                            - performance.read
                            - performance.read-dashboards
                            - performance.vital-statistics-export
                            - record.confirm-registration
                            - record.reject-registration
                            - workqueue
                            - dashboard.view
                        $option:
                          type: string
                          enum:
                            - event
                            - placeOfEvent
                            - declaredIn
                            - declaredBy
                            - registeredIn
                            - registeredBy
                            - accessLevel
                            - role
                            - ids
                      required:
                        - $scope
                        - $option
                      additionalProperties: false
              required:
                - $jurisdiction
              additionalProperties: false
          additionalProperties: false
        defaultValue:
          type: object
          properties:
            country:
              type: string
            streetLevelDetails:
              type: object
              propertyNames:
                type: string
              additionalProperties:
                type: string
            addressType:
              type: string
              const: DOMESTIC
            administrativeArea:
              anyOf:
                - type: string
                  format: uuid
                  pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                - type: object
                  properties:
                    $userField:
                      type: string
                      enum:
                        - id
                        - name
                        - role
                        - fullHonorificName
                        - device
                        - firstname
                        - middlename
                        - surname
                        - signature
                        - avatar
                        - primaryOfficeId
                        - administrativeAreaId
                    $location:
                      type: string
                  required:
                    - $userField
                  additionalProperties: false
          required:
            - country
            - addressType
          additionalProperties: false
      required:
        - id
        - label
        - type
      additionalProperties: false
      description: Address input field – a combination of location and text fields
    ActionConditional:
      oneOf:
        - type: object
          properties:
            type:
              type: string
              const: SHOW
            conditional:
              $ref: "#/components/schemas/Conditional"
          required:
            - type
            - conditional
          additionalProperties: false
          description: If 'SHOW' conditional is defined, the component is shown to the
            user only if the condition is met
        - type: object
          properties:
            type:
              type: string
              const: ENABLE
            conditional:
              $ref: "#/components/schemas/Conditional"
          required:
            - type
            - conditional
          additionalProperties: false
          description: If 'ENABLE' conditional is defined, the component is enabled only
            if the condition is met
      description: Conditional gating whether an action is shown (SHOW) or enabled
        (ENABLE). When omitted from an action, the action is shown and enabled
        for everyone.
      type: object
    TextField:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the field.
        label:
          description: Human-readable label of the field.
          $ref: "#/components/schemas/TranslationConfigOutput"
        parent:
          description: Reference to the parent field or fields. When a parent field
            changes, this field is reset.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field by its ID
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field by its ID
        required:
          description: Indicates whether the field is mandatory.
          default: false
          anyOf:
            - type: boolean
            - type: object
              properties:
                message:
                  description: Custom required validation message
                  $ref: "#/components/schemas/TranslationConfigOutput"
              required:
                - message
              additionalProperties: false
        conditionals:
          description: Conditions determining when the field is shown or enabled. By
            default, the field is always shown and enabled.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/FieldConditional"
        secured:
          description: Indicates whether the field is secured. Secured fields are not
            indexed for search and are only visible when explicitly assigned.
          default: false
          type: boolean
        placeholder:
          $ref: "#/components/schemas/TranslationConfigOutput"
        validation:
          description: Additional validation rules applied to the field.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/ValidationConfig"
        helperText:
          $ref: "#/components/schemas/TranslationConfigOutput"
        hideLabel:
          default: false
          type: boolean
        uncorrectable:
          description: Indicates whether the field can be modified during record correction.
          default: false
          type: boolean
        value:
          description: Reference to the source field or fields. When a value is defined,
            it is copied from the parent field when changed. If multiple
            references are provided, the first truthy value is used.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field by its ID
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field by its ID
        analytics:
          description: Indicates whether the field is included in analytics. When enabled,
            its value becomes available in the analytics dashboard.
          default: false
          type: boolean
        type:
          type: string
          const: TEXT
        defaultValue:
          anyOf:
            - type: string
              minLength: 1
            - type: object
              properties:
                $userField:
                  type: string
                  enum:
                    - id
                    - name
                    - role
                    - fullHonorificName
                    - device
                    - firstname
                    - middlename
                    - surname
                    - signature
                    - avatar
                    - primaryOfficeId
                    - administrativeAreaId
                $location:
                  type: string
              required:
                - $userField
              additionalProperties: false
        configuration:
          default:
            type: text
          type: object
          properties:
            maxLength:
              description: Maximum length of the text
              type: number
            type:
              type: string
              enum:
                - text
                - password
            prefix:
              $ref: "#/components/schemas/TranslationConfigOutput"
            postfix:
              $ref: "#/components/schemas/TranslationConfigOutput"
          additionalProperties: false
      required:
        - id
        - label
        - type
      additionalProperties: false
      description: A text input field
    NumberField:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the field.
        label:
          description: Human-readable label of the field.
          $ref: "#/components/schemas/TranslationConfigOutput"
        parent:
          description: Reference to the parent field or fields. When a parent field
            changes, this field is reset.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field by its ID
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field by its ID
        required:
          description: Indicates whether the field is mandatory.
          default: false
          anyOf:
            - type: boolean
            - type: object
              properties:
                message:
                  description: Custom required validation message
                  $ref: "#/components/schemas/TranslationConfigOutput"
              required:
                - message
              additionalProperties: false
        conditionals:
          description: Conditions determining when the field is shown or enabled. By
            default, the field is always shown and enabled.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/FieldConditional"
        secured:
          description: Indicates whether the field is secured. Secured fields are not
            indexed for search and are only visible when explicitly assigned.
          default: false
          type: boolean
        placeholder:
          $ref: "#/components/schemas/TranslationConfigOutput"
        validation:
          description: Additional validation rules applied to the field.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/ValidationConfig"
        helperText:
          $ref: "#/components/schemas/TranslationConfigOutput"
        hideLabel:
          default: false
          type: boolean
        uncorrectable:
          description: Indicates whether the field can be modified during record correction.
          default: false
          type: boolean
        value:
          description: Reference to the source field or fields. When a value is defined,
            it is copied from the parent field when changed. If multiple
            references are provided, the first truthy value is used.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field by its ID
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field by its ID
        analytics:
          description: Indicates whether the field is included in analytics. When enabled,
            its value becomes available in the analytics dashboard.
          default: false
          type: boolean
        type:
          type: string
          const: NUMBER
        defaultValue:
          type: number
        configuration:
          type: object
          properties:
            min:
              description: Minimum value
              type: number
            max:
              description: Maximum value
              type: number
            prefix:
              $ref: "#/components/schemas/TranslationConfigOutput"
            postfix:
              $ref: "#/components/schemas/TranslationConfigOutput"
          additionalProperties: false
      required:
        - id
        - label
        - type
      additionalProperties: false
      description: A number input field
    NumberWithUnitField:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the field.
        label:
          description: Human-readable label of the field.
          $ref: "#/components/schemas/TranslationConfigOutput"
        parent:
          description: Reference to the parent field or fields. When a parent field
            changes, this field is reset.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field by its ID
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field by its ID
        required:
          description: Indicates whether the field is mandatory.
          default: false
          anyOf:
            - type: boolean
            - type: object
              properties:
                message:
                  description: Custom required validation message
                  $ref: "#/components/schemas/TranslationConfigOutput"
              required:
                - message
              additionalProperties: false
        conditionals:
          description: Conditions determining when the field is shown or enabled. By
            default, the field is always shown and enabled.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/FieldConditional"
        secured:
          description: Indicates whether the field is secured. Secured fields are not
            indexed for search and are only visible when explicitly assigned.
          default: false
          type: boolean
        placeholder:
          $ref: "#/components/schemas/TranslationConfigOutput"
        validation:
          description: Additional validation rules applied to the field.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/ValidationConfig"
        helperText:
          $ref: "#/components/schemas/TranslationConfigOutput"
        hideLabel:
          default: false
          type: boolean
        uncorrectable:
          description: Indicates whether the field can be modified during record correction.
          default: false
          type: boolean
        value:
          description: Reference to the source field or fields. When a value is defined,
            it is copied from the parent field when changed. If multiple
            references are provided, the first truthy value is used.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field by its ID
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field by its ID
        analytics:
          description: Indicates whether the field is included in analytics. When enabled,
            its value becomes available in the analytics dashboard.
          default: false
          type: boolean
        type:
          type: string
          const: NUMBER_WITH_UNIT
        defaultValue:
          type: object
          properties:
            numericValue:
              type: number
            unit:
              type: string
          required:
            - numericValue
            - unit
          additionalProperties: false
        options:
          type: array
          items:
            type: object
            properties:
              value:
                type: string
                description: The value of the option
              label:
                anyOf:
                  - type: string
                  - $ref: "#/components/schemas/TranslationConfigOutput"
                description: The label of the option
              conditionals:
                default: []
                type: array
                items:
                  $ref: "#/components/schemas/ActionConditional"
            required:
              - value
              - label
            additionalProperties: false
          description: A list of options for the unit select
        configuration:
          type: object
          properties:
            min:
              description: Minimum value of the number field
              type: number
            max:
              description: Maximum value of the number field
              type: number
            numberFieldPlaceholder:
              description: Placeholder for the number field
              $ref: "#/components/schemas/TranslationConfigOutput"
          additionalProperties: false
      required:
        - id
        - label
        - type
        - options
      additionalProperties: false
      description: A number with unit input field
    TextAreaField:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the field.
        label:
          description: Human-readable label of the field.
          $ref: "#/components/schemas/TranslationConfigOutput"
        parent:
          description: Reference to the parent field or fields. When a parent field
            changes, this field is reset.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field by its ID
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field by its ID
        required:
          description: Indicates whether the field is mandatory.
          default: false
          anyOf:
            - type: boolean
            - type: object
              properties:
                message:
                  description: Custom required validation message
                  $ref: "#/components/schemas/TranslationConfigOutput"
              required:
                - message
              additionalProperties: false
        conditionals:
          description: Conditions determining when the field is shown or enabled. By
            default, the field is always shown and enabled.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/FieldConditional"
        secured:
          description: Indicates whether the field is secured. Secured fields are not
            indexed for search and are only visible when explicitly assigned.
          default: false
          type: boolean
        placeholder:
          $ref: "#/components/schemas/TranslationConfigOutput"
        validation:
          description: Additional validation rules applied to the field.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/ValidationConfig"
        helperText:
          $ref: "#/components/schemas/TranslationConfigOutput"
        hideLabel:
          default: false
          type: boolean
        uncorrectable:
          description: Indicates whether the field can be modified during record correction.
          default: false
          type: boolean
        value:
          description: Reference to the source field or fields. When a value is defined,
            it is copied from the parent field when changed. If multiple
            references are provided, the first truthy value is used.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field by its ID
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field by its ID
        analytics:
          description: Indicates whether the field is included in analytics. When enabled,
            its value becomes available in the analytics dashboard.
          default: false
          type: boolean
        type:
          type: string
          const: TEXTAREA
        defaultValue:
          type: string
          minLength: 1
        configuration:
          default:
            rows: 4
          type: object
          properties:
            maxLength:
              description: Maximum length of the text
              type: number
            rows:
              description: Number of visible text lines
              type: number
            cols:
              description: Number of visible columns
              type: number
            prefix:
              $ref: "#/components/schemas/TranslationConfigOutput"
            postfix:
              $ref: "#/components/schemas/TranslationConfigOutput"
          additionalProperties: false
      required:
        - id
        - label
        - type
      additionalProperties: false
      description: A multiline text input
    AgeField:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the field.
        label:
          description: Human-readable label of the field.
          $ref: "#/components/schemas/TranslationConfigOutput"
        parent:
          description: Reference to the parent field or fields. When a parent field
            changes, this field is reset.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field by its ID
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field by its ID
        required:
          description: Indicates whether the field is mandatory.
          default: false
          anyOf:
            - type: boolean
            - type: object
              properties:
                message:
                  description: Custom required validation message
                  $ref: "#/components/schemas/TranslationConfigOutput"
              required:
                - message
              additionalProperties: false
        conditionals:
          description: Conditions determining when the field is shown or enabled. By
            default, the field is always shown and enabled.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/FieldConditional"
        secured:
          description: Indicates whether the field is secured. Secured fields are not
            indexed for search and are only visible when explicitly assigned.
          default: false
          type: boolean
        placeholder:
          $ref: "#/components/schemas/TranslationConfigOutput"
        validation:
          description: Additional validation rules applied to the field.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/ValidationConfig"
        helperText:
          $ref: "#/components/schemas/TranslationConfigOutput"
        hideLabel:
          default: false
          type: boolean
        uncorrectable:
          description: Indicates whether the field can be modified during record correction.
          default: false
          type: boolean
        value:
          description: Reference to the source field or fields. When a value is defined,
            it is copied from the parent field when changed. If multiple
            references are provided, the first truthy value is used.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field by its ID
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field by its ID
        analytics:
          description: Indicates whether the field is included in analytics. When enabled,
            its value becomes available in the analytics dashboard.
          default: false
          type: boolean
        type:
          type: string
          const: AGE
        defaultValue:
          type: number
        configuration:
          type: object
          properties:
            asOfDate:
              type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field by its ID
            prefix:
              $ref: "#/components/schemas/TranslationConfigOutput"
            postfix:
              $ref: "#/components/schemas/TranslationConfigOutput"
          required:
            - asOfDate
          additionalProperties: false
      required:
        - id
        - label
        - type
        - configuration
      additionalProperties: false
      description: An age input field which uses the current date as the asOfDate
    DateField:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the field.
        label:
          description: Human-readable label of the field.
          $ref: "#/components/schemas/TranslationConfigOutput"
        parent:
          description: Reference to the parent field or fields. When a parent field
            changes, this field is reset.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field by its ID
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field by its ID
        required:
          description: Indicates whether the field is mandatory.
          default: false
          anyOf:
            - type: boolean
            - type: object
              properties:
                message:
                  description: Custom required validation message
                  $ref: "#/components/schemas/TranslationConfigOutput"
              required:
                - message
              additionalProperties: false
        conditionals:
          description: Conditions determining when the field is shown or enabled. By
            default, the field is always shown and enabled.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/FieldConditional"
        secured:
          description: Indicates whether the field is secured. Secured fields are not
            indexed for search and are only visible when explicitly assigned.
          default: false
          type: boolean
        placeholder:
          $ref: "#/components/schemas/TranslationConfigOutput"
        validation:
          description: Additional validation rules applied to the field.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/ValidationConfig"
        helperText:
          $ref: "#/components/schemas/TranslationConfigOutput"
        hideLabel:
          default: false
          type: boolean
        uncorrectable:
          description: Indicates whether the field can be modified during record correction.
          default: false
          type: boolean
        value:
          description: Reference to the source field or fields. When a value is defined,
            it is copied from the parent field when changed. If multiple
            references are provided, the first truthy value is used.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field by its ID
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field by its ID
        analytics:
          description: Indicates whether the field is included in analytics. When enabled,
            its value becomes available in the analytics dashboard.
          default: false
          type: boolean
        type:
          type: string
          const: DATE
        defaultValue:
          description: Default date value(yyyy-MM-dd)
          anyOf:
            - type: object
              properties:
                $$now:
                  type: boolean
                  const: true
              required:
                - $$now
              additionalProperties: false
            - type: string
              format: date
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
              description: Date in the format YYYY-MM-DD
        configuration:
          type: object
          properties:
            notice:
              description: Text to display above the date input
              $ref: "#/components/schemas/TranslationConfigOutput"
          additionalProperties: false
      required:
        - id
        - label
        - type
      additionalProperties: false
      description: A date input (yyyy-MM-dd)
    TimeField:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the field.
        label:
          description: Human-readable label of the field.
          $ref: "#/components/schemas/TranslationConfigOutput"
        parent:
          description: Reference to the parent field or fields. When a parent field
            changes, this field is reset.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field by its ID
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field by its ID
        required:
          description: Indicates whether the field is mandatory.
          default: false
          anyOf:
            - type: boolean
            - type: object
              properties:
                message:
                  description: Custom required validation message
                  $ref: "#/components/schemas/TranslationConfigOutput"
              required:
                - message
              additionalProperties: false
        conditionals:
          description: Conditions determining when the field is shown or enabled. By
            default, the field is always shown and enabled.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/FieldConditional"
        secured:
          description: Indicates whether the field is secured. Secured fields are not
            indexed for search and are only visible when explicitly assigned.
          default: false
          type: boolean
        placeholder:
          $ref: "#/components/schemas/TranslationConfigOutput"
        validation:
          description: Additional validation rules applied to the field.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/ValidationConfig"
        helperText:
          $ref: "#/components/schemas/TranslationConfigOutput"
        hideLabel:
          default: false
          type: boolean
        uncorrectable:
          description: Indicates whether the field can be modified during record correction.
          default: false
          type: boolean
        value:
          description: Reference to the source field or fields. When a value is defined,
            it is copied from the parent field when changed. If multiple
            references are provided, the first truthy value is used.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field by its ID
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field by its ID
        analytics:
          description: Indicates whether the field is included in analytics. When enabled,
            its value becomes available in the analytics dashboard.
          default: false
          type: boolean
        type:
          type: string
          const: TIME
        defaultValue:
          description: Default time value (HH-mm)
          anyOf:
            - type: object
              properties:
                $$now:
                  type: boolean
                  const: true
              required:
                - $$now
              additionalProperties: false
            - type: string
              pattern: ^([01][0-9]|2[0-3]):[0-5][0-9]$
        configuration:
          type: object
          properties:
            use12HourFormat:
              description: Whether to use 12-hour format
              type: boolean
            notice:
              description: Text to display above the time input
              $ref: "#/components/schemas/TranslationConfigOutput"
          additionalProperties: false
      required:
        - id
        - label
        - type
      additionalProperties: false
      description: A single time input (HH-mm)
    DateRangeField:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the field.
        label:
          description: Human-readable label of the field.
          $ref: "#/components/schemas/TranslationConfigOutput"
        parent:
          description: Reference to the parent field or fields. When a parent field
            changes, this field is reset.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field by its ID
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field by its ID
        required:
          description: Indicates whether the field is mandatory.
          default: false
          anyOf:
            - type: boolean
            - type: object
              properties:
                message:
                  description: Custom required validation message
                  $ref: "#/components/schemas/TranslationConfigOutput"
              required:
                - message
              additionalProperties: false
        conditionals:
          description: Conditions determining when the field is shown or enabled. By
            default, the field is always shown and enabled.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/FieldConditional"
        secured:
          description: Indicates whether the field is secured. Secured fields are not
            indexed for search and are only visible when explicitly assigned.
          default: false
          type: boolean
        placeholder:
          $ref: "#/components/schemas/TranslationConfigOutput"
        validation:
          description: Additional validation rules applied to the field.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/ValidationConfig"
        helperText:
          $ref: "#/components/schemas/TranslationConfigOutput"
        hideLabel:
          default: false
          type: boolean
        uncorrectable:
          description: Indicates whether the field can be modified during record correction.
          default: false
          type: boolean
        value:
          description: Reference to the source field or fields. When a value is defined,
            it is copied from the parent field when changed. If multiple
            references are provided, the first truthy value is used.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field by its ID
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field by its ID
        analytics:
          description: Indicates whether the field is included in analytics. When enabled,
            its value becomes available in the analytics dashboard.
          default: false
          type: boolean
        type:
          type: string
          const: DATE_RANGE
        defaultValue:
          anyOf:
            - type: object
              properties:
                start:
                  type: string
                  format: date
                  pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                  description: Date in the format YYYY-MM-DD
                end:
                  type: string
                  format: date
                  pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                  description: Date in the format YYYY-MM-DD
              required:
                - start
                - end
              additionalProperties: false
            - type: string
              format: date
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
              description: Date in the format YYYY-MM-DD
          description: Date range with start and end dates in the format YYYY-MM-DD.
            Inclusive start, exclusive end.
        configuration:
          type: object
          properties:
            notice:
              description: Text to display above the date input
              $ref: "#/components/schemas/TranslationConfigOutput"
          additionalProperties: false
      required:
        - id
        - label
        - type
      additionalProperties: false
      description: "A date range input ({ start: yyyy-MM-dd, end: yyyy-MM-dd })"
    SelectDateRangeField:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the field.
        label:
          description: Human-readable label of the field.
          $ref: "#/components/schemas/TranslationConfigOutput"
        parent:
          description: Reference to the parent field or fields. When a parent field
            changes, this field is reset.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field by its ID
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field by its ID
        required:
          description: Indicates whether the field is mandatory.
          default: false
          anyOf:
            - type: boolean
            - type: object
              properties:
                message:
                  description: Custom required validation message
                  $ref: "#/components/schemas/TranslationConfigOutput"
              required:
                - message
              additionalProperties: false
        conditionals:
          description: Conditions determining when the field is shown or enabled. By
            default, the field is always shown and enabled.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/FieldConditional"
        secured:
          description: Indicates whether the field is secured. Secured fields are not
            indexed for search and are only visible when explicitly assigned.
          default: false
          type: boolean
        placeholder:
          $ref: "#/components/schemas/TranslationConfigOutput"
        validation:
          description: Additional validation rules applied to the field.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/ValidationConfig"
        helperText:
          $ref: "#/components/schemas/TranslationConfigOutput"
        hideLabel:
          default: false
          type: boolean
        uncorrectable:
          description: Indicates whether the field can be modified during record correction.
          default: false
          type: boolean
        value:
          description: Reference to the source field or fields. When a value is defined,
            it is copied from the parent field when changed. If multiple
            references are provided, the first truthy value is used.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field by its ID
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field by its ID
        analytics:
          description: Indicates whether the field is included in analytics. When enabled,
            its value becomes available in the analytics dashboard.
          default: false
          type: boolean
        type:
          type: string
          const: SELECT_DATE_RANGE
        defaultValue:
          type: string
          enum:
            - last7Days
            - last30Days
            - last90Days
            - last365Days
        options:
          type: array
          items:
            type: object
            properties:
              value:
                type: string
                enum:
                  - last7Days
                  - last30Days
                  - last90Days
                  - last365Days
                description: The value of the option
              label:
                description: The label of the option
                $ref: "#/components/schemas/TranslationConfigOutput"
            required:
              - value
              - label
            additionalProperties: false
          description: A list of options
      required:
        - id
        - label
        - type
        - options
      additionalProperties: false
      description: A date range selection field
    ImageViewField:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the field.
        label:
          description: Human-readable label of the field.
          $ref: "#/components/schemas/TranslationConfigOutput"
        parent:
          description: Reference to the parent field or fields. When a parent field
            changes, this field is reset.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field by its ID
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field by its ID
        required:
          description: Indicates whether the field is mandatory.
          default: false
          anyOf:
            - type: boolean
            - type: object
              properties:
                message:
                  description: Custom required validation message
                  $ref: "#/components/schemas/TranslationConfigOutput"
              required:
                - message
              additionalProperties: false
        conditionals:
          description: Conditions determining when the field is shown or enabled. By
            default, the field is always shown and enabled.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/FieldConditional"
        secured:
          description: Indicates whether the field is secured. Secured fields are not
            indexed for search and are only visible when explicitly assigned.
          default: false
          type: boolean
        placeholder:
          $ref: "#/components/schemas/TranslationConfigOutput"
        validation:
          description: Additional validation rules applied to the field.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/ValidationConfig"
        helperText:
          $ref: "#/components/schemas/TranslationConfigOutput"
        hideLabel:
          default: false
          type: boolean
        uncorrectable:
          description: Indicates whether the field can be modified during record correction.
          default: false
          type: boolean
        value:
          description: Reference to the source field or fields. When a value is defined,
            it is copied from the parent field when changed. If multiple
            references are provided, the first truthy value is used.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field by its ID
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field by its ID
        analytics:
          description: Indicates whether the field is included in analytics. When enabled,
            its value becomes available in the analytics dashboard.
          default: false
          type: boolean
        type:
          type: string
          const: IMAGE_VIEW
        defaultValue:
          type: string
          minLength: 1
        configuration:
          type: object
          properties:
            alt:
              description: Alternative text for the image
              type: string
            width:
              description: CSS width value for the image
              type: string
            height:
              description: CSS height value for the image
              type: string
            textAlign:
              description: Text alignment for positioning the image in its container
              type: string
              enum:
                - left
                - center
                - right
                - start
                - end
            objectFit:
              description: How the image should be resized to fit the container
              type: string
              enum:
                - contain
                - cover
                - fill
                - none
                - scale-down
          additionalProperties: false
      required:
        - id
        - label
        - type
        - configuration
      additionalProperties: false
      description: A read-only image component for form pages
    Paragraph:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the field.
        label:
          description: Human-readable label of the field.
          $ref: "#/components/schemas/TranslationConfigOutput"
        parent:
          description: Reference to the parent field or fields. When a parent field
            changes, this field is reset.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field by its ID
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field by its ID
        required:
          description: Indicates whether the field is mandatory.
          default: false
          anyOf:
            - type: boolean
            - type: object
              properties:
                message:
                  description: Custom required validation message
                  $ref: "#/components/schemas/TranslationConfigOutput"
              required:
                - message
              additionalProperties: false
        conditionals:
          description: Conditions determining when the field is shown or enabled. By
            default, the field is always shown and enabled.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/FieldConditional"
        secured:
          description: Indicates whether the field is secured. Secured fields are not
            indexed for search and are only visible when explicitly assigned.
          default: false
          type: boolean
        placeholder:
          $ref: "#/components/schemas/TranslationConfigOutput"
        validation:
          description: Additional validation rules applied to the field.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/ValidationConfig"
        helperText:
          $ref: "#/components/schemas/TranslationConfigOutput"
        hideLabel:
          default: false
          type: boolean
        uncorrectable:
          description: Indicates whether the field can be modified during record correction.
          default: false
          type: boolean
        value:
          description: Reference to the source field or fields. When a value is defined,
            it is copied from the parent field when changed. If multiple
            references are provided, the first truthy value is used.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field by its ID
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field by its ID
        analytics:
          description: Indicates whether the field is included in analytics. When enabled,
            its value becomes available in the analytics dashboard.
          default: false
          type: boolean
        type:
          type: string
          const: PARAGRAPH
        configuration:
          default: {}
          type: object
          properties:
            styles:
              type: object
              properties:
                hint:
                  description: When true, paragraph is styled as a hint with grey color
                  type: boolean
                textAlign:
                  description: Text alignment for the paragraph
                  type: string
                  enum:
                    - left
                    - center
                    - right
                    - start
                    - end
              additionalProperties: false
          additionalProperties: false
      required:
        - id
        - label
        - type
        - configuration
      additionalProperties: false
      description: A read-only HTML <p> paragraph
    Heading:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the field.
        label:
          description: Human-readable label of the field.
          $ref: "#/components/schemas/TranslationConfigOutput"
        parent:
          description: Reference to the parent field or fields. When a parent field
            changes, this field is reset.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field by its ID
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field by its ID
        required:
          description: Indicates whether the field is mandatory.
          default: false
          anyOf:
            - type: boolean
            - type: object
              properties:
                message:
                  description: Custom required validation message
                  $ref: "#/components/schemas/TranslationConfigOutput"
              required:
                - message
              additionalProperties: false
        conditionals:
          description: Conditions determining when the field is shown or enabled. By
            default, the field is always shown and enabled.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/FieldConditional"
        secured:
          description: Indicates whether the field is secured. Secured fields are not
            indexed for search and are only visible when explicitly assigned.
          default: false
          type: boolean
        placeholder:
          $ref: "#/components/schemas/TranslationConfigOutput"
        validation:
          description: Additional validation rules applied to the field.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/ValidationConfig"
        helperText:
          $ref: "#/components/schemas/TranslationConfigOutput"
        hideLabel:
          default: false
          type: boolean
        uncorrectable:
          description: Indicates whether the field can be modified during record correction.
          default: false
          type: boolean
        value:
          description: Reference to the source field or fields. When a value is defined,
            it is copied from the parent field when changed. If multiple
            references are provided, the first truthy value is used.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field by its ID
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field by its ID
        analytics:
          description: Indicates whether the field is included in analytics. When enabled,
            its value becomes available in the analytics dashboard.
          default: false
          type: boolean
        type:
          type: string
          const: HEADING
        configuration:
          default: {}
          type: object
          properties:
            styles:
              type: object
              properties:
                fontVariant:
                  description: Font variant to use for the paragraph text
                  type: string
                  enum:
                    - reg12
                    - reg14
                    - reg16
                    - reg18
                    - h4
                    - h3
                textAlign:
                  description: Text alignment for the paragraph
                  type: string
                  enum:
                    - left
                    - center
                    - right
                    - start
                    - end
              additionalProperties: false
          additionalProperties: false
      required:
        - id
        - label
        - type
        - configuration
      additionalProperties: false
      description: A read-only heading component for form pages
    RadioGroup:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the field.
        label:
          description: Human-readable label of the field.
          $ref: "#/components/schemas/TranslationConfigOutput"
        parent:
          description: Reference to the parent field or fields. When a parent field
            changes, this field is reset.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field by its ID
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field by its ID
        required:
          description: Indicates whether the field is mandatory.
          default: false
          anyOf:
            - type: boolean
            - type: object
              properties:
                message:
                  description: Custom required validation message
                  $ref: "#/components/schemas/TranslationConfigOutput"
              required:
                - message
              additionalProperties: false
        conditionals:
          description: Conditions determining when the field is shown or enabled. By
            default, the field is always shown and enabled.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/FieldConditional"
        secured:
          description: Indicates whether the field is secured. Secured fields are not
            indexed for search and are only visible when explicitly assigned.
          default: false
          type: boolean
        placeholder:
          $ref: "#/components/schemas/TranslationConfigOutput"
        validation:
          description: Additional validation rules applied to the field.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/ValidationConfig"
        helperText:
          $ref: "#/components/schemas/TranslationConfigOutput"
        hideLabel:
          default: false
          type: boolean
        uncorrectable:
          description: Indicates whether the field can be modified during record correction.
          default: false
          type: boolean
        value:
          description: Reference to the source field or fields. When a value is defined,
            it is copied from the parent field when changed. If multiple
            references are provided, the first truthy value is used.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field by its ID
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field by its ID
        analytics:
          description: Indicates whether the field is included in analytics. When enabled,
            its value becomes available in the analytics dashboard.
          default: false
          type: boolean
        type:
          type: string
          const: RADIO_GROUP
        defaultValue:
          type: string
        options:
          type: array
          items:
            type: object
            properties:
              value:
                type: string
                description: The value of the option
              label:
                anyOf:
                  - type: string
                  - $ref: "#/components/schemas/TranslationConfigOutput"
                description: The label of the option
              conditionals:
                default: []
                type: array
                items:
                  $ref: "#/components/schemas/ActionConditional"
            required:
              - value
              - label
            additionalProperties: false
          description: A list of options
        configuration:
          type: object
          properties:
            styles:
              type: object
              properties:
                size:
                  type: string
                  enum:
                    - NORMAL
                    - LARGE
              additionalProperties: false
          additionalProperties: false
      required:
        - id
        - label
        - type
        - options
      additionalProperties: false
      description: A grouped radio button field
    BulletList:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the field.
        label:
          description: Human-readable label of the field.
          $ref: "#/components/schemas/TranslationConfigOutput"
        parent:
          description: Reference to the parent field or fields. When a parent field
            changes, this field is reset.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field by its ID
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field by its ID
        required:
          description: Indicates whether the field is mandatory.
          default: false
          anyOf:
            - type: boolean
            - type: object
              properties:
                message:
                  description: Custom required validation message
                  $ref: "#/components/schemas/TranslationConfigOutput"
              required:
                - message
              additionalProperties: false
        conditionals:
          description: Conditions determining when the field is shown or enabled. By
            default, the field is always shown and enabled.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/FieldConditional"
        secured:
          description: Indicates whether the field is secured. Secured fields are not
            indexed for search and are only visible when explicitly assigned.
          default: false
          type: boolean
        placeholder:
          $ref: "#/components/schemas/TranslationConfigOutput"
        validation:
          description: Additional validation rules applied to the field.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/ValidationConfig"
        helperText:
          $ref: "#/components/schemas/TranslationConfigOutput"
        hideLabel:
          default: false
          type: boolean
        uncorrectable:
          description: Indicates whether the field can be modified during record correction.
          default: false
          type: boolean
        value:
          description: Reference to the source field or fields. When a value is defined,
            it is copied from the parent field when changed. If multiple
            references are provided, the first truthy value is used.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field by its ID
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field by its ID
        analytics:
          description: Indicates whether the field is included in analytics. When enabled,
            its value becomes available in the analytics dashboard.
          default: false
          type: boolean
        type:
          type: string
          const: BULLET_LIST
        items:
          type: array
          items:
            $ref: "#/components/schemas/TranslationConfigOutput"
          description: A list of items
        configuration:
          default: {}
          type: object
          properties:
            styles:
              type: object
              properties:
                fontVariant:
                  type: string
                  enum:
                    - reg12
                    - reg14
                    - reg16
                    - reg18
                    - h4
                    - h3
                    - h2
                    - h1
              additionalProperties: false
          additionalProperties: false
      required:
        - id
        - label
        - type
        - items
        - configuration
      additionalProperties: false
      description: A list of bullet points
    PageHeader:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the field.
        label:
          description: Human-readable label of the field.
          $ref: "#/components/schemas/TranslationConfigOutput"
        parent:
          description: Reference to the parent field or fields. When a parent field
            changes, this field is reset.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field by its ID
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field by its ID
        required:
          description: Indicates whether the field is mandatory.
          default: false
          anyOf:
            - type: boolean
            - type: object
              properties:
                message:
                  description: Custom required validation message
                  $ref: "#/components/schemas/TranslationConfigOutput"
              required:
                - message
              additionalProperties: false
        conditionals:
          description: Conditions determining when the field is shown or enabled. By
            default, the field is always shown and enabled.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/FieldConditional"
        secured:
          description: Indicates whether the field is secured. Secured fields are not
            indexed for search and are only visible when explicitly assigned.
          default: false
          type: boolean
        placeholder:
          $ref: "#/components/schemas/TranslationConfigOutput"
        validation:
          description: Additional validation rules applied to the field.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/ValidationConfig"
        helperText:
          $ref: "#/components/schemas/TranslationConfigOutput"
        hideLabel:
          default: false
          type: boolean
        uncorrectable:
          description: Indicates whether the field can be modified during record correction.
          default: false
          type: boolean
        value:
          description: Reference to the source field or fields. When a value is defined,
            it is copied from the parent field when changed. If multiple
            references are provided, the first truthy value is used.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field by its ID
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field by its ID
        analytics:
          description: Indicates whether the field is included in analytics. When enabled,
            its value becomes available in the analytics dashboard.
          default: false
          type: boolean
        type:
          type: string
          const: PAGE_HEADER
      required:
        - id
        - label
        - type
      additionalProperties: false
      description: A read-only header component for form pages
    Select:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the field.
        label:
          description: Human-readable label of the field.
          $ref: "#/components/schemas/TranslationConfigOutput"
        parent:
          description: Reference to the parent field or fields. When a parent field
            changes, this field is reset.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field by its ID
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field by its ID
        required:
          description: Indicates whether the field is mandatory.
          default: false
          anyOf:
            - type: boolean
            - type: object
              properties:
                message:
                  description: Custom required validation message
                  $ref: "#/components/schemas/TranslationConfigOutput"
              required:
                - message
              additionalProperties: false
        conditionals:
          description: Conditions determining when the field is shown or enabled. By
            default, the field is always shown and enabled.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/FieldConditional"
        secured:
          description: Indicates whether the field is secured. Secured fields are not
            indexed for search and are only visible when explicitly assigned.
          default: false
          type: boolean
        placeholder:
          $ref: "#/components/schemas/TranslationConfigOutput"
        validation:
          description: Additional validation rules applied to the field.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/ValidationConfig"
        helperText:
          $ref: "#/components/schemas/TranslationConfigOutput"
        hideLabel:
          default: false
          type: boolean
        uncorrectable:
          description: Indicates whether the field can be modified during record correction.
          default: false
          type: boolean
        value:
          description: Reference to the source field or fields. When a value is defined,
            it is copied from the parent field when changed. If multiple
            references are provided, the first truthy value is used.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field by its ID
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field by its ID
        analytics:
          description: Indicates whether the field is included in analytics. When enabled,
            its value becomes available in the analytics dashboard.
          default: false
          type: boolean
        type:
          type: string
          const: SELECT
        defaultValue:
          type: string
        options:
          type: array
          items:
            type: object
            properties:
              value:
                type: string
                description: The value of the option
              label:
                anyOf:
                  - type: string
                  - $ref: "#/components/schemas/TranslationConfigOutput"
                description: The label of the option
              conditionals:
                default: []
                type: array
                items:
                  $ref: "#/components/schemas/ActionConditional"
            required:
              - value
              - label
            additionalProperties: false
          description: A list of options
        noOptionsMessage:
          description: "

            \    A translation configuration object used to display a message
            when no options are available.

            \    It must follow the shape: { id: string; defaultMessage: string;
            description?: string }.

            \    The message is rendered via
            intl.formatMessage(noOptionsMessage, { input }),

            \    where 'input' represents the text entered in the Select field.

            \    You can reference this variable in your message, for example:

            \    { ..., defaultMessage: \"'{input}' is not listed among the
            health facilities.\" }

            \  "
          $ref: "#/components/schemas/TranslationConfigOutput"
      required:
        - id
        - label
        - type
        - options
      additionalProperties: false
      description: A select input field
    NameField:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the field.
        label:
          description: Human-readable label of the field.
          $ref: "#/components/schemas/TranslationConfigOutput"
        parent:
          description: Reference to the parent field or fields. When a parent field
            changes, this field is reset.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field by its ID
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field by its ID
        required:
          description: Indicates whether the field is mandatory.
          default: false
          anyOf:
            - type: boolean
            - type: object
              properties:
                message:
                  description: Custom required validation message
                  $ref: "#/components/schemas/TranslationConfigOutput"
              required:
                - message
              additionalProperties: false
        conditionals:
          description: Conditions determining when the field is shown or enabled. By
            default, the field is always shown and enabled.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/FieldConditional"
        secured:
          description: Indicates whether the field is secured. Secured fields are not
            indexed for search and are only visible when explicitly assigned.
          default: false
          type: boolean
        placeholder:
          $ref: "#/components/schemas/TranslationConfigOutput"
        validation:
          description: Additional validation rules applied to the field.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/ValidationConfig"
        helperText:
          $ref: "#/components/schemas/TranslationConfigOutput"
        hideLabel:
          default: false
          type: boolean
        uncorrectable:
          description: Indicates whether the field can be modified during record correction.
          default: false
          type: boolean
        value:
          description: Reference to the source field or fields. When a value is defined,
            it is copied from the parent field when changed. If multiple
            references are provided, the first truthy value is used.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field by its ID
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field by its ID
        analytics:
          description: Indicates whether the field is included in analytics. When enabled,
            its value becomes available in the analytics dashboard.
          default: false
          type: boolean
        type:
          type: string
          const: NAME
        defaultValue:
          type: object
          properties:
            firstname:
              anyOf:
                - type: object
                  properties:
                    $userField:
                      type: string
                      enum:
                        - id
                        - name
                        - role
                        - fullHonorificName
                        - device
                        - firstname
                        - middlename
                        - surname
                        - signature
                        - avatar
                        - primaryOfficeId
                        - administrativeAreaId
                    $location:
                      type: string
                  required:
                    - $userField
                  additionalProperties: false
                - type: string
                  minLength: 1
            middlename:
              anyOf:
                - type: object
                  properties:
                    $userField:
                      type: string
                      enum:
                        - id
                        - name
                        - role
                        - fullHonorificName
                        - device
                        - firstname
                        - middlename
                        - surname
                        - signature
                        - avatar
                        - primaryOfficeId
                        - administrativeAreaId
                    $location:
                      type: string
                  required:
                    - $userField
                  additionalProperties: false
                - type: string
                  minLength: 1
            surname:
              anyOf:
                - type: object
                  properties:
                    $userField:
                      type: string
                      enum:
                        - id
                        - name
                        - role
                        - fullHonorificName
                        - device
                        - firstname
                        - middlename
                        - surname
                        - signature
                        - avatar
                        - primaryOfficeId
                        - administrativeAreaId
                    $location:
                      type: string
                  required:
                    - $userField
                  additionalProperties: false
                - type: string
                  minLength: 1
          additionalProperties: false
        configuration:
          default:
            name:
              firstname:
                required: true
              surname:
                required: true
          type: object
          properties:
            name:
              default:
                firstname:
                  required: true
                surname:
                  required: true
              type: object
              properties:
                firstname:
                  type: object
                  properties:
                    required:
                      default: false
                      anyOf:
                        - type: boolean
                        - type: object
                          properties:
                            message:
                              description: Custom required validation message
                              $ref: "#/components/schemas/TranslationConfigOutput"
                          required:
                            - message
                          additionalProperties: false
                    label:
                      $ref: "#/components/schemas/TranslationConfigOutput"
                  additionalProperties: false
                middlename:
                  type: object
                  properties:
                    required:
                      default: false
                      anyOf:
                        - type: boolean
                        - type: object
                          properties:
                            message:
                              description: Custom required validation message
                              $ref: "#/components/schemas/TranslationConfigOutput"
                          required:
                            - message
                          additionalProperties: false
                    label:
                      $ref: "#/components/schemas/TranslationConfigOutput"
                  additionalProperties: false
                surname:
                  type: object
                  properties:
                    required:
                      default: false
                      anyOf:
                        - type: boolean
                        - type: object
                          properties:
                            message:
                              description: Custom required validation message
                              $ref: "#/components/schemas/TranslationConfigOutput"
                          required:
                            - message
                          additionalProperties: false
                    label:
                      $ref: "#/components/schemas/TranslationConfigOutput"
                  additionalProperties: false
              additionalProperties: false
            order:
              type: array
              items:
                type: string
                enum:
                  - firstname
                  - middlename
                  - surname
            maxLength:
              description: Maximum length of the text
              type: number
            prefix:
              $ref: "#/components/schemas/TranslationConfigOutput"
            postfix:
              $ref: "#/components/schemas/TranslationConfigOutput"
            showParentFieldError:
              description: If true, shows the parent field error and hides the subfield error
              default: false
              type: boolean
          additionalProperties: false
      required:
        - id
        - label
        - type
      additionalProperties: false
      description: A field for entering a persons name
    PhoneField:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the field.
        label:
          description: Human-readable label of the field.
          $ref: "#/components/schemas/TranslationConfigOutput"
        parent:
          description: Reference to the parent field or fields. When a parent field
            changes, this field is reset.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field by its ID
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field by its ID
        required:
          description: Indicates whether the field is mandatory.
          default: false
          anyOf:
            - type: boolean
            - type: object
              properties:
                message:
                  description: Custom required validation message
                  $ref: "#/components/schemas/TranslationConfigOutput"
              required:
                - message
              additionalProperties: false
        conditionals:
          description: Conditions determining when the field is shown or enabled. By
            default, the field is always shown and enabled.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/FieldConditional"
        secured:
          description: Indicates whether the field is secured. Secured fields are not
            indexed for search and are only visible when explicitly assigned.
          default: false
          type: boolean
        placeholder:
          $ref: "#/components/schemas/TranslationConfigOutput"
        validation:
          description: Additional validation rules applied to the field.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/ValidationConfig"
        helperText:
          $ref: "#/components/schemas/TranslationConfigOutput"
        hideLabel:
          default: false
          type: boolean
        uncorrectable:
          description: Indicates whether the field can be modified during record correction.
          default: false
          type: boolean
        value:
          description: Reference to the source field or fields. When a value is defined,
            it is copied from the parent field when changed. If multiple
            references are provided, the first truthy value is used.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field by its ID
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field by its ID
        analytics:
          description: Indicates whether the field is included in analytics. When enabled,
            its value becomes available in the analytics dashboard.
          default: false
          type: boolean
        defaultValue:
          type: string
          minLength: 1
        type:
          type: string
          const: PHONE
      required:
        - id
        - label
        - type
      additionalProperties: false
      description: A field for entering a phone number
    IdField:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the field.
        label:
          description: Human-readable label of the field.
          $ref: "#/components/schemas/TranslationConfigOutput"
        parent:
          description: Reference to the parent field or fields. When a parent field
            changes, this field is reset.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field by its ID
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field by its ID
        required:
          description: Indicates whether the field is mandatory.
          default: false
          anyOf:
            - type: boolean
            - type: object
              properties:
                message:
                  description: Custom required validation message
                  $ref: "#/components/schemas/TranslationConfigOutput"
              required:
                - message
              additionalProperties: false
        conditionals:
          description: Conditions determining when the field is shown or enabled. By
            default, the field is always shown and enabled.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/FieldConditional"
        secured:
          description: Indicates whether the field is secured. Secured fields are not
            indexed for search and are only visible when explicitly assigned.
          default: false
          type: boolean
        placeholder:
          $ref: "#/components/schemas/TranslationConfigOutput"
        validation:
          description: Additional validation rules applied to the field.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/ValidationConfig"
        helperText:
          $ref: "#/components/schemas/TranslationConfigOutput"
        hideLabel:
          default: false
          type: boolean
        uncorrectable:
          description: Indicates whether the field can be modified during record correction.
          default: false
          type: boolean
        value:
          description: Reference to the source field or fields. When a value is defined,
            it is copied from the parent field when changed. If multiple
            references are provided, the first truthy value is used.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field by its ID
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field by its ID
        analytics:
          description: Indicates whether the field is included in analytics. When enabled,
            its value becomes available in the analytics dashboard.
          default: false
          type: boolean
        defaultValue:
          type: string
          minLength: 1
        type:
          type: string
          const: ID
      required:
        - id
        - label
        - type
      additionalProperties: false
      description: A field for entering an ID
    Checkbox:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the field.
        label:
          description: Human-readable label of the field.
          $ref: "#/components/schemas/TranslationConfigOutput"
        parent:
          description: Reference to the parent field or fields. When a parent field
            changes, this field is reset.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field by its ID
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field by its ID
        required:
          description: Indicates whether the field is mandatory.
          default: false
          anyOf:
            - type: boolean
            - type: object
              properties:
                message:
                  description: Custom required validation message
                  $ref: "#/components/schemas/TranslationConfigOutput"
              required:
                - message
              additionalProperties: false
        conditionals:
          description: Conditions determining when the field is shown or enabled. By
            default, the field is always shown and enabled.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/FieldConditional"
        secured:
          description: Indicates whether the field is secured. Secured fields are not
            indexed for search and are only visible when explicitly assigned.
          default: false
          type: boolean
        placeholder:
          $ref: "#/components/schemas/TranslationConfigOutput"
        validation:
          description: Additional validation rules applied to the field.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/ValidationConfig"
        helperText:
          $ref: "#/components/schemas/TranslationConfigOutput"
        hideLabel:
          default: false
          type: boolean
        uncorrectable:
          description: Indicates whether the field can be modified during record correction.
          default: false
          type: boolean
        value:
          description: Reference to the source field or fields. When a value is defined,
            it is copied from the parent field when changed. If multiple
            references are provided, the first truthy value is used.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field by its ID
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field by its ID
        analytics:
          description: Indicates whether the field is included in analytics. When enabled,
            its value becomes available in the analytics dashboard.
          default: false
          type: boolean
        type:
          type: string
          const: CHECKBOX
        defaultValue:
          default: false
          type: boolean
      required:
        - id
        - label
        - type
        - defaultValue
      additionalProperties: false
      description: A boolean checkbox field
    File:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the field.
        label:
          description: Human-readable label of the field.
          $ref: "#/components/schemas/TranslationConfigOutput"
        parent:
          description: Reference to the parent field or fields. When a parent field
            changes, this field is reset.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field by its ID
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field by its ID
        required:
          description: Indicates whether the field is mandatory.
          default: false
          anyOf:
            - type: boolean
            - type: object
              properties:
                message:
                  description: Custom required validation message
                  $ref: "#/components/schemas/TranslationConfigOutput"
              required:
                - message
              additionalProperties: false
        conditionals:
          description: Conditions determining when the field is shown or enabled. By
            default, the field is always shown and enabled.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/FieldConditional"
        secured:
          description: Indicates whether the field is secured. Secured fields are not
            indexed for search and are only visible when explicitly assigned.
          default: false
          type: boolean
        placeholder:
          $ref: "#/components/schemas/TranslationConfigOutput"
        validation:
          description: Additional validation rules applied to the field.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/ValidationConfig"
        helperText:
          $ref: "#/components/schemas/TranslationConfigOutput"
        hideLabel:
          default: false
          type: boolean
        uncorrectable:
          description: Indicates whether the field can be modified during record correction.
          default: false
          type: boolean
        value:
          description: Reference to the source field or fields. When a value is defined,
            it is copied from the parent field when changed. If multiple
            references are provided, the first truthy value is used.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field by its ID
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field by its ID
        analytics:
          description: Indicates whether the field is included in analytics. When enabled,
            its value becomes available in the analytics dashboard.
          default: false
          type: boolean
        type:
          type: string
          const: FILE
        defaultValue:
          type: object
          properties:
            path:
              type: string
              description: A relative path within the S3 bucket, never starting with /. e.g.
                document-id.jpg or directory/document-id.jpg. The document
                service constructs the full /bucket/path internally.
            originalFilename:
              type: string
            type:
              type: string
          required:
            - path
            - originalFilename
            - type
          additionalProperties: false
        configuration:
          default:
            maxFileSize: 5242880
          type: object
          properties:
            maxFileSize:
              default: 5242880
              type: number
              description: Maximum file size in bytes
            acceptedFileTypes:
              description: List of allowed file formats for the signature
              type: array
              items:
                type: string
                enum:
                  - image/png
                  - image/jpg
                  - image/jpeg
                  - image/svg+xml
                  - application/pdf
                  - application/msword
                  - application/vnd.openxmlformats-officedocument.wordprocessingml.document
                  - application/vnd.oasis.opendocument.text
            maxImageSize:
              type: object
              properties:
                targetSize:
                  type: object
                  properties:
                    width:
                      type: number
                    height:
                      type: number
                  required:
                    - width
                    - height
                  additionalProperties: false
              required:
                - targetSize
              additionalProperties: false
            style:
              type: object
              properties:
                width:
                  description: Whether the file upload button should take the full width of the
                    container or not
                  type: string
                  enum:
                    - full
                    - auto
              additionalProperties: false
            fileName:
              $ref: "#/components/schemas/TranslationConfigOutput"
          required:
            - maxFileSize
          additionalProperties: false
      required:
        - id
        - label
        - type
        - configuration
      additionalProperties: false
      description: A file upload field
    Country:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the field.
        label:
          description: Human-readable label of the field.
          $ref: "#/components/schemas/TranslationConfigOutput"
        parent:
          description: Reference to the parent field or fields. When a parent field
            changes, this field is reset.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field by its ID
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field by its ID
        required:
          description: Indicates whether the field is mandatory.
          default: false
          anyOf:
            - type: boolean
            - type: object
              properties:
                message:
                  description: Custom required validation message
                  $ref: "#/components/schemas/TranslationConfigOutput"
              required:
                - message
              additionalProperties: false
        conditionals:
          description: Conditions determining when the field is shown or enabled. By
            default, the field is always shown and enabled.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/FieldConditional"
        secured:
          description: Indicates whether the field is secured. Secured fields are not
            indexed for search and are only visible when explicitly assigned.
          default: false
          type: boolean
        placeholder:
          $ref: "#/components/schemas/TranslationConfigOutput"
        validation:
          description: Additional validation rules applied to the field.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/ValidationConfig"
        helperText:
          $ref: "#/components/schemas/TranslationConfigOutput"
        hideLabel:
          default: false
          type: boolean
        uncorrectable:
          description: Indicates whether the field can be modified during record correction.
          default: false
          type: boolean
        value:
          description: Reference to the source field or fields. When a value is defined,
            it is copied from the parent field when changed. If multiple
            references are provided, the first truthy value is used.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field by its ID
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field by its ID
        analytics:
          description: Indicates whether the field is included in analytics. When enabled,
            its value becomes available in the analytics dashboard.
          default: false
          type: boolean
        type:
          type: string
          const: COUNTRY
        defaultValue:
          type: string
          minLength: 1
        optionOverrides:
          description: Conditionals for specific countries. Countries not listed are
            always shown and enabled.
          type: array
          items:
            type: object
            properties:
              value:
                type: string
                description: The value of the option
              conditionals:
                default: []
                type: array
                items:
                  $ref: "#/components/schemas/ActionConditional"
            required:
              - value
            additionalProperties: false
      required:
        - id
        - label
        - type
      additionalProperties: false
      description: A field for selecting a country
    AdministrativeAreaField:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the field.
        label:
          description: Human-readable label of the field.
          $ref: "#/components/schemas/TranslationConfigOutput"
        parent:
          description: Reference to the parent field or fields. When a parent field
            changes, this field is reset.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field by its ID
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field by its ID
        required:
          description: Indicates whether the field is mandatory.
          default: false
          anyOf:
            - type: boolean
            - type: object
              properties:
                message:
                  description: Custom required validation message
                  $ref: "#/components/schemas/TranslationConfigOutput"
              required:
                - message
              additionalProperties: false
        conditionals:
          description: Conditions determining when the field is shown or enabled. By
            default, the field is always shown and enabled.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/FieldConditional"
        secured:
          description: Indicates whether the field is secured. Secured fields are not
            indexed for search and are only visible when explicitly assigned.
          default: false
          type: boolean
        placeholder:
          $ref: "#/components/schemas/TranslationConfigOutput"
        validation:
          description: Additional validation rules applied to the field.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/ValidationConfig"
        helperText:
          $ref: "#/components/schemas/TranslationConfigOutput"
        hideLabel:
          default: false
          type: boolean
        uncorrectable:
          description: Indicates whether the field can be modified during record correction.
          default: false
          type: boolean
        value:
          description: Reference to the source field or fields. When a value is defined,
            it is copied from the parent field when changed. If multiple
            references are provided, the first truthy value is used.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field by its ID
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field by its ID
        analytics:
          description: Indicates whether the field is included in analytics. When enabled,
            its value becomes available in the analytics dashboard.
          default: false
          type: boolean
        type:
          type: string
          const: ADMINISTRATIVE_AREA
        defaultValue:
          anyOf:
            - type: string
              minLength: 1
            - type: object
              properties:
                $userField:
                  type: string
                  enum:
                    - id
                    - name
                    - role
                    - fullHonorificName
                    - device
                    - firstname
                    - middlename
                    - surname
                    - signature
                    - avatar
                    - primaryOfficeId
                    - administrativeAreaId
                $location:
                  type: string
              required:
                - $userField
              additionalProperties: false
        configuration:
          type: object
          properties:
            partOf:
              description: Parent location
              type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
            type:
              type: string
              enum:
                - ADMIN_STRUCTURE
                - HEALTH_FACILITY
                - CRVS_OFFICE
            allowedLocations:
              description: Limits which location options are selectable depending on user
                jurisdiction and location.
              type: object
              properties:
                $jurisdiction:
                  anyOf:
                    - type: string
                      enum:
                        - administrativeArea
                        - location
                        - all
                      description: Filters based on user jurisdiction relative to their office
                        location in hierarchy.
                    - type: object
                      properties:
                        $scope:
                          type: string
                          enum:
                            - organisation.read-locations
                            - user.read
                            - user.create
                            - user.edit
                            - user.search
                            - record.search
                            - record.create
                            - record.read
                            - record.declare
                            - record.notify
                            - record.edit
                            - record.reject
                            - record.archive
                            - record.review-duplicates
                            - record.register
                            - record.print-certified-copies
                            - record.request-correction
                            - record.correct
                            - record.unassign-others
                            - record.custom-action
                            - bypassratelimit
                            - record.reindex
                            - user.data-seeding
                            - integration.create
                            - record.import
                            - config.update-all
                            - attachment.upload
                            - profile.electronic-signature
                            - user.read-only-my-audit
                            - performance.read
                            - performance.read-dashboards
                            - performance.vital-statistics-export
                            - record.confirm-registration
                            - record.reject-registration
                            - workqueue
                            - dashboard.view
                        $option:
                          type: string
                          enum:
                            - event
                            - placeOfEvent
                            - declaredIn
                            - declaredBy
                            - registeredIn
                            - registeredBy
                            - accessLevel
                            - role
                            - ids
                      required:
                        - $scope
                        - $option
                      additionalProperties: false
              required:
                - $jurisdiction
              additionalProperties: false
          required:
            - type
          additionalProperties: false
          description: Administrative area options
      required:
        - id
        - label
        - type
        - configuration
      additionalProperties: false
      description: Administrative area input field
    Divider:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the field.
        label:
          description: Human-readable label of the field.
          $ref: "#/components/schemas/TranslationConfigOutput"
        parent:
          description: Reference to the parent field or fields. When a parent field
            changes, this field is reset.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field by its ID
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field by its ID
        required:
          description: Indicates whether the field is mandatory.
          default: false
          anyOf:
            - type: boolean
            - type: object
              properties:
                message:
                  description: Custom required validation message
                  $ref: "#/components/schemas/TranslationConfigOutput"
              required:
                - message
              additionalProperties: false
        conditionals:
          description: Conditions determining when the field is shown or enabled. By
            default, the field is always shown and enabled.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/FieldConditional"
        secured:
          description: Indicates whether the field is secured. Secured fields are not
            indexed for search and are only visible when explicitly assigned.
          default: false
          type: boolean
        placeholder:
          $ref: "#/components/schemas/TranslationConfigOutput"
        validation:
          description: Additional validation rules applied to the field.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/ValidationConfig"
        helperText:
          $ref: "#/components/schemas/TranslationConfigOutput"
        hideLabel:
          default: false
          type: boolean
        uncorrectable:
          description: Indicates whether the field can be modified during record correction.
          default: false
          type: boolean
        value:
          description: Reference to the source field or fields. When a value is defined,
            it is copied from the parent field when changed. If multiple
            references are provided, the first truthy value is used.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field by its ID
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field by its ID
        analytics:
          description: Indicates whether the field is included in analytics. When enabled,
            its value becomes available in the analytics dashboard.
          default: false
          type: boolean
        type:
          type: string
          const: DIVIDER
      required:
        - id
        - label
        - type
      additionalProperties: false
      description: A horizontal line divider
    LocationInput:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the field.
        label:
          description: Human-readable label of the field.
          $ref: "#/components/schemas/TranslationConfigOutput"
        parent:
          description: Reference to the parent field or fields. When a parent field
            changes, this field is reset.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field by its ID
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field by its ID
        required:
          description: Indicates whether the field is mandatory.
          default: false
          anyOf:
            - type: boolean
            - type: object
              properties:
                message:
                  description: Custom required validation message
                  $ref: "#/components/schemas/TranslationConfigOutput"
              required:
                - message
              additionalProperties: false
        conditionals:
          description: Conditions determining when the field is shown or enabled. By
            default, the field is always shown and enabled.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/FieldConditional"
        secured:
          description: Indicates whether the field is secured. Secured fields are not
            indexed for search and are only visible when explicitly assigned.
          default: false
          type: boolean
        placeholder:
          $ref: "#/components/schemas/TranslationConfigOutput"
        validation:
          description: Additional validation rules applied to the field.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/ValidationConfig"
        helperText:
          $ref: "#/components/schemas/TranslationConfigOutput"
        hideLabel:
          default: false
          type: boolean
        uncorrectable:
          description: Indicates whether the field can be modified during record correction.
          default: false
          type: boolean
        value:
          description: Reference to the source field or fields. When a value is defined,
            it is copied from the parent field when changed. If multiple
            references are provided, the first truthy value is used.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field by its ID
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field by its ID
        analytics:
          description: Indicates whether the field is included in analytics. When enabled,
            its value becomes available in the analytics dashboard.
          default: false
          type: boolean
        type:
          type: string
          const: LOCATION
        defaultValue:
          anyOf:
            - type: string
              minLength: 1
            - type: object
              properties:
                $userField:
                  type: string
                  enum:
                    - id
                    - name
                    - role
                    - fullHonorificName
                    - device
                    - firstname
                    - middlename
                    - surname
                    - signature
                    - avatar
                    - primaryOfficeId
                    - administrativeAreaId
                $location:
                  type: string
              required:
                - $userField
              additionalProperties: false
        configuration:
          type: object
          properties:
            locationTypes:
              description: Types of the locations that are available for selection.
              type: array
              items:
                type: string
            allowedLocations:
              description: Limits which location options are selectable depending on user
                jurisdiction and location.
              type: object
              properties:
                $jurisdiction:
                  anyOf:
                    - type: string
                      enum:
                        - administrativeArea
                        - location
                        - all
                      description: Filters based on user jurisdiction relative to their office
                        location in hierarchy.
                    - type: object
                      properties:
                        $scope:
                          type: string
                          enum:
                            - organisation.read-locations
                            - user.read
                            - user.create
                            - user.edit
                            - user.search
                            - record.search
                            - record.create
                            - record.read
                            - record.declare
                            - record.notify
                            - record.edit
                            - record.reject
                            - record.archive
                            - record.review-duplicates
                            - record.register
                            - record.print-certified-copies
                            - record.request-correction
                            - record.correct
                            - record.unassign-others
                            - record.custom-action
                            - bypassratelimit
                            - record.reindex
                            - user.data-seeding
                            - integration.create
                            - record.import
                            - config.update-all
                            - attachment.upload
                            - profile.electronic-signature
                            - user.read-only-my-audit
                            - performance.read
                            - performance.read-dashboards
                            - performance.vital-statistics-export
                            - record.confirm-registration
                            - record.reject-registration
                            - workqueue
                            - dashboard.view
                        $option:
                          type: string
                          enum:
                            - event
                            - placeOfEvent
                            - declaredIn
                            - declaredBy
                            - registeredIn
                            - registeredBy
                            - accessLevel
                            - role
                            - ids
                      required:
                        - $scope
                        - $option
                      additionalProperties: false
              required:
                - $jurisdiction
              additionalProperties: false
          additionalProperties: false
      required:
        - id
        - label
        - type
      additionalProperties: false
      description: A field for selecting a location
    SignatureField:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the field.
        label:
          description: Human-readable label of the field.
          $ref: "#/components/schemas/TranslationConfigOutput"
        parent:
          description: Reference to the parent field or fields. When a parent field
            changes, this field is reset.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field by its ID
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field by its ID
        required:
          description: Indicates whether the field is mandatory.
          default: false
          anyOf:
            - type: boolean
            - type: object
              properties:
                message:
                  description: Custom required validation message
                  $ref: "#/components/schemas/TranslationConfigOutput"
              required:
                - message
              additionalProperties: false
        conditionals:
          description: Conditions determining when the field is shown or enabled. By
            default, the field is always shown and enabled.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/FieldConditional"
        secured:
          description: Indicates whether the field is secured. Secured fields are not
            indexed for search and are only visible when explicitly assigned.
          default: false
          type: boolean
        placeholder:
          $ref: "#/components/schemas/TranslationConfigOutput"
        validation:
          description: Additional validation rules applied to the field.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/ValidationConfig"
        helperText:
          $ref: "#/components/schemas/TranslationConfigOutput"
        hideLabel:
          default: false
          type: boolean
        uncorrectable:
          description: Indicates whether the field can be modified during record correction.
          default: false
          type: boolean
        value:
          description: Reference to the source field or fields. When a value is defined,
            it is copied from the parent field when changed. If multiple
            references are provided, the first truthy value is used.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field by its ID
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field by its ID
        analytics:
          description: Indicates whether the field is included in analytics. When enabled,
            its value becomes available in the analytics dashboard.
          default: false
          type: boolean
        type:
          type: string
          const: SIGNATURE
        signaturePromptLabel:
          description: Title of the signature modal
          $ref: "#/components/schemas/TranslationConfigOutput"
        defaultValue:
          anyOf:
            - anyOf:
                - oneOf:
                    - type: object
                      properties:
                        country:
                          type: string
                        streetLevelDetails:
                          type: object
                          propertyNames:
                            type: string
                          additionalProperties:
                            type: string
                        addressType:
                          type: string
                          const: DOMESTIC
                        administrativeArea:
                          type: string
                          format: uuid
                          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      required:
                        - country
                        - addressType
                        - administrativeArea
                      additionalProperties: false
                    - type: object
                      properties:
                        country:
                          type: string
                        streetLevelDetails:
                          type: object
                          propertyNames:
                            type: string
                          additionalProperties:
                            type: string
                        addressType:
                          type: string
                          const: INTERNATIONAL
                      required:
                        - country
                        - addressType
                      additionalProperties: false
                  type: object
                - type: string
                - type: string
                  format: date
                  pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                  description: Date in the format YYYY-MM-DD
                - type: object
                  properties:
                    age:
                      type: number
                    asOfDateRef:
                      type: string
                  required:
                    - age
                    - asOfDateRef
                  additionalProperties: false
                - type: string
                  pattern: ^([01][0-9]|2[0-3]):[0-5][0-9]$
                - anyOf:
                    - type: object
                      properties:
                        start:
                          type: string
                          format: date
                          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                          description: Date in the format YYYY-MM-DD
                        end:
                          type: string
                          format: date
                          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                          description: Date in the format YYYY-MM-DD
                      required:
                        - start
                        - end
                      additionalProperties: false
                    - type: string
                      format: date
                      pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                      description: Date in the format YYYY-MM-DD
                  description: Date range with start and end dates in the format YYYY-MM-DD.
                    Inclusive start, exclusive end.
                - type: string
                  enum:
                    - last7Days
                    - last30Days
                    - last90Days
                    - last365Days
                - type: boolean
                - type: number
                - type: object
                  properties:
                    path:
                      type: string
                      description: A relative path within the S3 bucket, never starting with /. e.g.
                        document-id.jpg or directory/document-id.jpg. The
                        document service constructs the full /bucket/path
                        internally.
                    originalFilename:
                      type: string
                    type:
                      type: string
                  required:
                    - path
                    - originalFilename
                    - type
                  additionalProperties: false
                - type: array
                  items:
                    type: object
                    properties:
                      path:
                        type: string
                        description: A relative path within the S3 bucket, never starting with /. e.g.
                          document-id.jpg or directory/document-id.jpg. The
                          document service constructs the full /bucket/path
                          internally.
                      originalFilename:
                        type: string
                      type:
                        type: string
                      option:
                        type: string
                    required:
                      - path
                      - originalFilename
                      - type
                      - option
                    additionalProperties: false
                - type: object
                  properties:
                    firstname:
                      type: string
                    surname:
                      type: string
                    middlename:
                      type: string
                  required:
                    - firstname
                    - surname
                  additionalProperties: false
                - anyOf:
                    - anyOf:
                        - type: object
                          properties:
                            firstname:
                              anyOf:
                                - type: string
                                - type: "null"
                            surname:
                              anyOf:
                                - type: string
                                - type: "null"
                            middlename:
                              anyOf:
                                - type: string
                                - type: "null"
                          additionalProperties: false
                        - type: "null"
                    - not: {}
                - type: number
                - type: object
                  properties:
                    loading:
                      type: boolean
                    error:
                      anyOf:
                        - type: object
                          properties:
                            statusCode:
                              type: number
                            message:
                              type: string
                          required:
                            - statusCode
                            - message
                          additionalProperties: false
                        - type: "null"
                    data: {}
                  required:
                    - loading
                    - data
                  additionalProperties: false
                - type: string
                  enum:
                    - verified
                    - authenticated
                    - failed
                    - pending
                - anyOf:
                    - type: object
                      properties:
                        data:
                          type: object
                          propertyNames:
                            type: string
                          additionalProperties:
                            type: string
                        updatedAt:
                          type: string
                          format: date-time
                          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                      required:
                        - data
                        - updatedAt
                      additionalProperties: false
                    - type: "null"
                - type: object
                  properties:
                    data: {}
                  required:
                    - data
                  additionalProperties: false
                - type: object
                  properties:
                    data: {}
                  required:
                    - data
                  additionalProperties: false
                - type: object
                  properties:
                    numericValue:
                      type: number
                    unit:
                      type: string
                  required:
                    - numericValue
                    - unit
                  additionalProperties: false
                - type: object
                  properties:
                    numericValue:
                      type: number
                    unit:
                      type: string
                  additionalProperties: false
                - {}
                - type: object
                  properties:
                    label:
                      type: string
                    value:
                      type: string
                  required:
                    - label
                    - value
                  additionalProperties: false
                - anyOf:
                    - type: object
                      properties:
                        label:
                          type: string
                        value:
                          type: string
                      required:
                        - label
                        - value
                      additionalProperties: false
                    - type: "null"
            - anyOf:
                - type: object
                  properties:
                    data:
                      type: object
                      propertyNames:
                        type: string
                      additionalProperties:
                        anyOf:
                          - oneOf:
                              - type: object
                                properties:
                                  country:
                                    type: string
                                  streetLevelDetails:
                                    type: object
                                    propertyNames:
                                      type: string
                                    additionalProperties:
                                      type: string
                                  addressType:
                                    type: string
                                    const: DOMESTIC
                                  administrativeArea:
                                    type: string
                                    format: uuid
                                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                                required:
                                  - country
                                  - addressType
                                  - administrativeArea
                                additionalProperties: false
                              - type: object
                                properties:
                                  country:
                                    type: string
                                  streetLevelDetails:
                                    type: object
                                    propertyNames:
                                      type: string
                                    additionalProperties:
                                      type: string
                                  addressType:
                                    type: string
                                    const: INTERNATIONAL
                                required:
                                  - country
                                  - addressType
                                additionalProperties: false
                            type: object
                          - type: string
                          - type: string
                            format: date
                            pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                            description: Date in the format YYYY-MM-DD
                          - type: object
                            properties:
                              age:
                                type: number
                              asOfDateRef:
                                type: string
                            required:
                              - age
                              - asOfDateRef
                            additionalProperties: false
                          - type: string
                            pattern: ^([01][0-9]|2[0-3]):[0-5][0-9]$
                          - anyOf:
                              - type: object
                                properties:
                                  start:
                                    type: string
                                    format: date
                                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                                    description: Date in the format YYYY-MM-DD
                                  end:
                                    type: string
                                    format: date
                                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                                    description: Date in the format YYYY-MM-DD
                                required:
                                  - start
                                  - end
                                additionalProperties: false
                              - type: string
                                format: date
                                pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                                description: Date in the format YYYY-MM-DD
                            description: Date range with start and end dates in the format YYYY-MM-DD.
                              Inclusive start, exclusive end.
                          - type: string
                            enum:
                              - last7Days
                              - last30Days
                              - last90Days
                              - last365Days
                          - type: boolean
                          - type: number
                          - type: object
                            properties:
                              path:
                                type: string
                                description: A relative path within the S3 bucket, never starting with /. e.g.
                                  document-id.jpg or directory/document-id.jpg.
                                  The document service constructs the full
                                  /bucket/path internally.
                              originalFilename:
                                type: string
                              type:
                                type: string
                            required:
                              - path
                              - originalFilename
                              - type
                            additionalProperties: false
                          - type: array
                            items:
                              type: object
                              properties:
                                path:
                                  type: string
                                  description: A relative path within the S3 bucket, never starting with /. e.g.
                                    document-id.jpg or
                                    directory/document-id.jpg. The document
                                    service constructs the full /bucket/path
                                    internally.
                                originalFilename:
                                  type: string
                                type:
                                  type: string
                                option:
                                  type: string
                              required:
                                - path
                                - originalFilename
                                - type
                                - option
                              additionalProperties: false
                          - type: object
                            properties:
                              firstname:
                                type: string
                              surname:
                                type: string
                              middlename:
                                type: string
                            required:
                              - firstname
                              - surname
                            additionalProperties: false
                          - anyOf:
                              - anyOf:
                                  - type: object
                                    properties:
                                      firstname:
                                        anyOf:
                                          - type: string
                                          - type: "null"
                                      surname:
                                        anyOf:
                                          - type: string
                                          - type: "null"
                                      middlename:
                                        anyOf:
                                          - type: string
                                          - type: "null"
                                    additionalProperties: false
                                  - type: "null"
                              - not: {}
                          - type: number
                          - type: object
                            properties:
                              loading:
                                type: boolean
                              error:
                                anyOf:
                                  - type: object
                                    properties:
                                      statusCode:
                                        type: number
                                      message:
                                        type: string
                                    required:
                                      - statusCode
                                      - message
                                    additionalProperties: false
                                  - type: "null"
                              data: {}
                            required:
                              - loading
                              - data
                            additionalProperties: false
                          - type: string
                            enum:
                              - verified
                              - authenticated
                              - failed
                              - pending
                          - anyOf:
                              - type: object
                                properties:
                                  data:
                                    type: object
                                    propertyNames:
                                      type: string
                                    additionalProperties:
                                      type: string
                                  updatedAt:
                                    type: string
                                    format: date-time
                                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                                required:
                                  - data
                                  - updatedAt
                                additionalProperties: false
                              - type: "null"
                          - type: object
                            properties:
                              data: {}
                            required:
                              - data
                            additionalProperties: false
                          - type: object
                            properties:
                              data: {}
                            required:
                              - data
                            additionalProperties: false
                          - type: object
                            properties:
                              numericValue:
                                type: number
                              unit:
                                type: string
                            required:
                              - numericValue
                              - unit
                            additionalProperties: false
                          - type: object
                            properties:
                              numericValue:
                                type: number
                              unit:
                                type: string
                            additionalProperties: false
                          - {}
                          - type: object
                            properties:
                              label:
                                type: string
                              value:
                                type: string
                            required:
                              - label
                              - value
                            additionalProperties: false
                          - anyOf:
                              - type: object
                                properties:
                                  label:
                                    type: string
                                  value:
                                    type: string
                                required:
                                  - label
                                  - value
                                additionalProperties: false
                              - type: "null"
                  required:
                    - data
                  additionalProperties: false
                - type: "null"
            - type: object
              propertyNames:
                type: string
              additionalProperties:
                anyOf:
                  - oneOf:
                      - type: object
                        properties:
                          country:
                            type: string
                          streetLevelDetails:
                            type: object
                            propertyNames:
                              type: string
                            additionalProperties:
                              type: string
                          addressType:
                            type: string
                            const: DOMESTIC
                          administrativeArea:
                            type: string
                            format: uuid
                            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                        required:
                          - country
                          - addressType
                          - administrativeArea
                        additionalProperties: false
                      - type: object
                        properties:
                          country:
                            type: string
                          streetLevelDetails:
                            type: object
                            propertyNames:
                              type: string
                            additionalProperties:
                              type: string
                          addressType:
                            type: string
                            const: INTERNATIONAL
                        required:
                          - country
                          - addressType
                        additionalProperties: false
                    type: object
                  - type: string
                  - type: string
                    format: date
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                    description: Date in the format YYYY-MM-DD
                  - type: object
                    properties:
                      age:
                        type: number
                      asOfDateRef:
                        type: string
                    required:
                      - age
                      - asOfDateRef
                    additionalProperties: false
                  - type: string
                    pattern: ^([01][0-9]|2[0-3]):[0-5][0-9]$
                  - anyOf:
                      - type: object
                        properties:
                          start:
                            type: string
                            format: date
                            pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                            description: Date in the format YYYY-MM-DD
                          end:
                            type: string
                            format: date
                            pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                            description: Date in the format YYYY-MM-DD
                        required:
                          - start
                          - end
                        additionalProperties: false
                      - type: string
                        format: date
                        pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                        description: Date in the format YYYY-MM-DD
                    description: Date range with start and end dates in the format YYYY-MM-DD.
                      Inclusive start, exclusive end.
                  - type: string
                    enum:
                      - last7Days
                      - last30Days
                      - last90Days
                      - last365Days
                  - type: boolean
                  - type: number
                  - type: object
                    properties:
                      path:
                        type: string
                        description: A relative path within the S3 bucket, never starting with /. e.g.
                          document-id.jpg or directory/document-id.jpg. The
                          document service constructs the full /bucket/path
                          internally.
                      originalFilename:
                        type: string
                      type:
                        type: string
                    required:
                      - path
                      - originalFilename
                      - type
                    additionalProperties: false
                  - type: array
                    items:
                      type: object
                      properties:
                        path:
                          type: string
                          description: A relative path within the S3 bucket, never starting with /. e.g.
                            document-id.jpg or directory/document-id.jpg. The
                            document service constructs the full /bucket/path
                            internally.
                        originalFilename:
                          type: string
                        type:
                          type: string
                        option:
                          type: string
                      required:
                        - path
                        - originalFilename
                        - type
                        - option
                      additionalProperties: false
                  - type: object
                    properties:
                      firstname:
                        type: string
                      surname:
                        type: string
                      middlename:
                        type: string
                    required:
                      - firstname
                      - surname
                    additionalProperties: false
                  - anyOf:
                      - anyOf:
                          - type: object
                            properties:
                              firstname:
                                anyOf:
                                  - type: string
                                  - type: "null"
                              surname:
                                anyOf:
                                  - type: string
                                  - type: "null"
                              middlename:
                                anyOf:
                                  - type: string
                                  - type: "null"
                            additionalProperties: false
                          - type: "null"
                      - not: {}
                  - type: number
                  - type: object
                    properties:
                      loading:
                        type: boolean
                      error:
                        anyOf:
                          - type: object
                            properties:
                              statusCode:
                                type: number
                              message:
                                type: string
                            required:
                              - statusCode
                              - message
                            additionalProperties: false
                          - type: "null"
                      data: {}
                    required:
                      - loading
                      - data
                    additionalProperties: false
                  - type: string
                    enum:
                      - verified
                      - authenticated
                      - failed
                      - pending
                  - anyOf:
                      - type: object
                        properties:
                          data:
                            type: object
                            propertyNames:
                              type: string
                            additionalProperties:
                              type: string
                          updatedAt:
                            type: string
                            format: date-time
                            pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                        required:
                          - data
                          - updatedAt
                        additionalProperties: false
                      - type: "null"
                  - type: object
                    properties:
                      data: {}
                    required:
                      - data
                    additionalProperties: false
                  - type: object
                    properties:
                      data: {}
                    required:
                      - data
                    additionalProperties: false
                  - type: object
                    properties:
                      numericValue:
                        type: number
                      unit:
                        type: string
                    required:
                      - numericValue
                      - unit
                    additionalProperties: false
                  - type: object
                    properties:
                      numericValue:
                        type: number
                      unit:
                        type: string
                    additionalProperties: false
                  - {}
                  - type: object
                    properties:
                      label:
                        type: string
                      value:
                        type: string
                    required:
                      - label
                      - value
                    additionalProperties: false
                  - anyOf:
                      - type: object
                        properties:
                          label:
                            type: string
                          value:
                            type: string
                        required:
                          - label
                          - value
                        additionalProperties: false
                      - type: "null"
        configuration:
          default:
            maxFileSize: 5242880
          type: object
          properties:
            maxFileSize:
              default: 5242880
              type: number
              description: Maximum file size in bytes
            acceptedFileTypes:
              description: List of allowed file formats for the signature
              type: array
              items:
                type: string
                enum:
                  - image/png
                  - image/jpg
                  - image/jpeg
                  - image/svg+xml
                  - application/pdf
                  - application/msword
                  - application/vnd.openxmlformats-officedocument.wordprocessingml.document
                  - application/vnd.oasis.opendocument.text
          required:
            - maxFileSize
          additionalProperties: false
      required:
        - id
        - label
        - type
        - signaturePromptLabel
        - configuration
      additionalProperties: false
      description: A signature input field
    EmailField:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the field.
        label:
          description: Human-readable label of the field.
          $ref: "#/components/schemas/TranslationConfigOutput"
        parent:
          description: Reference to the parent field or fields. When a parent field
            changes, this field is reset.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field by its ID
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field by its ID
        required:
          description: Indicates whether the field is mandatory.
          default: false
          anyOf:
            - type: boolean
            - type: object
              properties:
                message:
                  description: Custom required validation message
                  $ref: "#/components/schemas/TranslationConfigOutput"
              required:
                - message
              additionalProperties: false
        conditionals:
          description: Conditions determining when the field is shown or enabled. By
            default, the field is always shown and enabled.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/FieldConditional"
        secured:
          description: Indicates whether the field is secured. Secured fields are not
            indexed for search and are only visible when explicitly assigned.
          default: false
          type: boolean
        placeholder:
          $ref: "#/components/schemas/TranslationConfigOutput"
        validation:
          description: Additional validation rules applied to the field.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/ValidationConfig"
        helperText:
          $ref: "#/components/schemas/TranslationConfigOutput"
        hideLabel:
          default: false
          type: boolean
        uncorrectable:
          description: Indicates whether the field can be modified during record correction.
          default: false
          type: boolean
        value:
          description: Reference to the source field or fields. When a value is defined,
            it is copied from the parent field when changed. If multiple
            references are provided, the first truthy value is used.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field by its ID
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field by its ID
        analytics:
          description: Indicates whether the field is included in analytics. When enabled,
            its value becomes available in the analytics dashboard.
          default: false
          type: boolean
        type:
          type: string
          const: EMAIL
        configuration:
          default:
            maxLength: 255
          type: object
          properties:
            maxLength:
              description: Maximum length of the text
              type: number
          additionalProperties: false
        defaultValue:
          type: string
          minLength: 1
      required:
        - id
        - label
        - type
      additionalProperties: false
      description: An email input field
    FileUploadWithOptions:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the field.
        label:
          description: Human-readable label of the field.
          $ref: "#/components/schemas/TranslationConfigOutput"
        parent:
          description: Reference to the parent field or fields. When a parent field
            changes, this field is reset.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field by its ID
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field by its ID
        required:
          description: Indicates whether the field is mandatory.
          default: false
          anyOf:
            - type: boolean
            - type: object
              properties:
                message:
                  description: Custom required validation message
                  $ref: "#/components/schemas/TranslationConfigOutput"
              required:
                - message
              additionalProperties: false
        conditionals:
          description: Conditions determining when the field is shown or enabled. By
            default, the field is always shown and enabled.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/FieldConditional"
        secured:
          description: Indicates whether the field is secured. Secured fields are not
            indexed for search and are only visible when explicitly assigned.
          default: false
          type: boolean
        placeholder:
          $ref: "#/components/schemas/TranslationConfigOutput"
        validation:
          description: Additional validation rules applied to the field.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/ValidationConfig"
        helperText:
          $ref: "#/components/schemas/TranslationConfigOutput"
        hideLabel:
          default: false
          type: boolean
        uncorrectable:
          description: Indicates whether the field can be modified during record correction.
          default: false
          type: boolean
        value:
          description: Reference to the source field or fields. When a value is defined,
            it is copied from the parent field when changed. If multiple
            references are provided, the first truthy value is used.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field by its ID
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field by its ID
        analytics:
          description: Indicates whether the field is included in analytics. When enabled,
            its value becomes available in the analytics dashboard.
          default: false
          type: boolean
        type:
          type: string
          const: FILE_WITH_OPTIONS
        options:
          type: array
          items:
            type: object
            properties:
              value:
                type: string
                description: The value of the option
              label:
                anyOf:
                  - type: string
                  - $ref: "#/components/schemas/TranslationConfigOutput"
                description: The label of the option
              conditionals:
                default: []
                type: array
                items:
                  $ref: "#/components/schemas/ActionConditional"
            required:
              - value
              - label
            additionalProperties: false
          description: A list of options
        defaultValue:
          type: array
          items:
            type: object
            properties:
              path:
                type: string
                description: A relative path within the S3 bucket, never starting with /. e.g.
                  document-id.jpg or directory/document-id.jpg. The document
                  service constructs the full /bucket/path internally.
              originalFilename:
                type: string
              type:
                type: string
              option:
                type: string
            required:
              - path
              - originalFilename
              - type
              - option
            additionalProperties: false
        configuration:
          default:
            maxFileSize: 5242880
          type: object
          properties:
            maxFileSize:
              default: 5242880
              type: number
              description: Maximum file size in bytes
            maxImageSize:
              type: object
              properties:
                targetSize:
                  type: object
                  properties:
                    width:
                      type: number
                    height:
                      type: number
                  required:
                    - width
                    - height
                  additionalProperties: false
              required:
                - targetSize
              additionalProperties: false
            acceptedFileTypes:
              description: List of allowed file formats for the signature
              type: array
              items:
                type: string
                enum:
                  - image/png
                  - image/jpg
                  - image/jpeg
                  - image/svg+xml
                  - application/pdf
                  - application/msword
                  - application/vnd.openxmlformats-officedocument.wordprocessingml.document
                  - application/vnd.oasis.opendocument.text
          required:
            - maxFileSize
          additionalProperties: false
      required:
        - id
        - label
        - type
        - options
        - configuration
      additionalProperties: false
      description: A field for uploading files with file type options
    DataField:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the field.
        label:
          description: Human-readable label of the field.
          $ref: "#/components/schemas/TranslationConfigOutput"
        parent:
          description: Reference to the parent field or fields. When a parent field
            changes, this field is reset.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field by its ID
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field by its ID
        required:
          description: Indicates whether the field is mandatory.
          default: false
          anyOf:
            - type: boolean
            - type: object
              properties:
                message:
                  description: Custom required validation message
                  $ref: "#/components/schemas/TranslationConfigOutput"
              required:
                - message
              additionalProperties: false
        conditionals:
          description: Conditions determining when the field is shown or enabled. By
            default, the field is always shown and enabled.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/FieldConditional"
        secured:
          description: Indicates whether the field is secured. Secured fields are not
            indexed for search and are only visible when explicitly assigned.
          default: false
          type: boolean
        placeholder:
          $ref: "#/components/schemas/TranslationConfigOutput"
        validation:
          description: Additional validation rules applied to the field.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/ValidationConfig"
        helperText:
          $ref: "#/components/schemas/TranslationConfigOutput"
        hideLabel:
          default: false
          type: boolean
        uncorrectable:
          description: Indicates whether the field can be modified during record correction.
          default: false
          type: boolean
        value:
          description: Reference to the source field or fields. When a value is defined,
            it is copied from the parent field when changed. If multiple
            references are provided, the first truthy value is used.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field by its ID
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field by its ID
        analytics:
          description: Indicates whether the field is included in analytics. When enabled,
            its value becomes available in the analytics dashboard.
          default: false
          type: boolean
        type:
          type: string
          const: DATA
        configuration:
          type: object
          properties:
            subtitle:
              $ref: "#/components/schemas/TranslationConfigOutput"
            data:
              type: array
              items:
                anyOf:
                  - type: object
                    properties:
                      id:
                        type: string
                        description: ID for the data entry.
                      label:
                        $ref: "#/components/schemas/TranslationConfigOutput"
                      value:
                        anyOf:
                          - anyOf:
                              - $ref: "#/components/schemas/TranslationConfigOutput"
                              - type: string
                          - type: object
                            properties:
                              $$field:
                                type: string
                                description: Id of the field to reference
                              $$subfield:
                                default: []
                                description: 'If the FieldValue is an object, subfield can be used to refer to
                                  e.g. `["foo", "bar"]` in `{ foo: { bar: 3 }
                                  }`'
                                type: array
                                items:
                                  type: string
                            required:
                              - $$field
                              - $$subfield
                            additionalProperties: false
                            description: Reference to a field by its ID
                    required:
                      - id
                      - label
                      - value
                    additionalProperties: false
                    description: Static data entry
                  - type: object
                    properties:
                      fieldId:
                        type: string
                    required:
                      - fieldId
                    additionalProperties: false
                description: Data entry can be either a static data entry, or a reference to
                  another field in the current form or the declaration.
          required:
            - data
          additionalProperties: false
      required:
        - id
        - label
        - type
        - configuration
      additionalProperties: false
      description: A field for displaying a table of read-only data
    ButtonField:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the field.
        label:
          description: Human-readable label of the field.
          $ref: "#/components/schemas/TranslationConfigOutput"
        parent:
          description: Reference to the parent field or fields. When a parent field
            changes, this field is reset.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field by its ID
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field by its ID
        required:
          description: Indicates whether the field is mandatory.
          default: false
          anyOf:
            - type: boolean
            - type: object
              properties:
                message:
                  description: Custom required validation message
                  $ref: "#/components/schemas/TranslationConfigOutput"
              required:
                - message
              additionalProperties: false
        conditionals:
          description: Conditions determining when the field is shown or enabled. By
            default, the field is always shown and enabled.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/FieldConditional"
        secured:
          description: Indicates whether the field is secured. Secured fields are not
            indexed for search and are only visible when explicitly assigned.
          default: false
          type: boolean
        placeholder:
          $ref: "#/components/schemas/TranslationConfigOutput"
        validation:
          description: Additional validation rules applied to the field.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/ValidationConfig"
        helperText:
          $ref: "#/components/schemas/TranslationConfigOutput"
        hideLabel:
          default: false
          type: boolean
        uncorrectable:
          description: Indicates whether the field can be modified during record correction.
          default: false
          type: boolean
        value:
          description: Reference to the source field or fields. When a value is defined,
            it is copied from the parent field when changed. If multiple
            references are provided, the first truthy value is used.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field by its ID
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field by its ID
        analytics:
          description: Indicates whether the field is included in analytics. When enabled,
            its value becomes available in the analytics dashboard.
          default: false
          type: boolean
        type:
          type: string
          const: BUTTON
        defaultValue:
          type: number
        configuration:
          type: object
          properties:
            icon:
              description: Icon for the button. You can find icons from OpenCRVS UI-Kit.
              type: string
            loading:
              description: Whether the button is in a loading state and shows a spinner
              type: boolean
            buttonSize:
              description: Size of the button.
              type: string
              enum:
                - small
                - medium
                - large
            buttonType:
              description: Type of the button.
              type: string
              enum:
                - primary
                - secondary
                - tertiary
                - positive
                - negative
                - secondaryNegative
                - icon
                - iconPrimary
            textColor:
              description: Color of the text.
              type: string
              enum:
                - primary
                - copy
            textVariant:
              description: Variant of the text.
              type: string
              enum:
                - bold14
                - reg14
            text:
              description: Text to display on the button
              $ref: "#/components/schemas/TranslationConfigOutput"
          required:
            - text
          additionalProperties: false
      required:
        - id
        - label
        - type
        - configuration
      additionalProperties: false
      description: A generic button that can be used to trigger an action
    AlphaPrintButton:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the field.
        label:
          description: Human-readable label of the field.
          $ref: "#/components/schemas/TranslationConfigOutput"
        parent:
          description: Reference to the parent field or fields. When a parent field
            changes, this field is reset.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field by its ID
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field by its ID
        required:
          description: Indicates whether the field is mandatory.
          default: false
          anyOf:
            - type: boolean
            - type: object
              properties:
                message:
                  description: Custom required validation message
                  $ref: "#/components/schemas/TranslationConfigOutput"
              required:
                - message
              additionalProperties: false
        conditionals:
          description: Conditions determining when the field is shown or enabled. By
            default, the field is always shown and enabled.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/FieldConditional"
        secured:
          description: Indicates whether the field is secured. Secured fields are not
            indexed for search and are only visible when explicitly assigned.
          default: false
          type: boolean
        placeholder:
          $ref: "#/components/schemas/TranslationConfigOutput"
        validation:
          description: Additional validation rules applied to the field.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/ValidationConfig"
        helperText:
          $ref: "#/components/schemas/TranslationConfigOutput"
        hideLabel:
          default: false
          type: boolean
        uncorrectable:
          description: Indicates whether the field can be modified during record correction.
          default: false
          type: boolean
        value:
          description: Reference to the source field or fields. When a value is defined,
            it is copied from the parent field when changed. If multiple
            references are provided, the first truthy value is used.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field by its ID
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field by its ID
        analytics:
          description: Indicates whether the field is included in analytics. When enabled,
            its value becomes available in the analytics dashboard.
          default: false
          type: boolean
        type:
          type: string
          const: ALPHA_PRINT_BUTTON
        configuration:
          type: object
          properties:
            template:
              type: string
              description: Template ID from countryconfig templates to use for printing
            buttonLabel:
              description: Label for the print button
              $ref: "#/components/schemas/TranslationConfigOutput"
          required:
            - template
          additionalProperties: false
      required:
        - id
        - label
        - type
        - configuration
      additionalProperties: false
      description: An experimental print button field for printing certificates during
        the declaration process
    HttpField:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the field.
        label:
          description: Human-readable label of the field.
          $ref: "#/components/schemas/TranslationConfigOutput"
        parent:
          description: Reference to the parent field or fields. When a parent field
            changes, this field is reset.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field by its ID
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field by its ID
        required:
          description: Indicates whether the field is mandatory.
          default: false
          anyOf:
            - type: boolean
            - type: object
              properties:
                message:
                  description: Custom required validation message
                  $ref: "#/components/schemas/TranslationConfigOutput"
              required:
                - message
              additionalProperties: false
        conditionals:
          description: Conditions determining when the field is shown or enabled. By
            default, the field is always shown and enabled.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/FieldConditional"
        secured:
          description: Indicates whether the field is secured. Secured fields are not
            indexed for search and are only visible when explicitly assigned.
          default: false
          type: boolean
        placeholder:
          $ref: "#/components/schemas/TranslationConfigOutput"
        validation:
          description: Additional validation rules applied to the field.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/ValidationConfig"
        helperText:
          $ref: "#/components/schemas/TranslationConfigOutput"
        hideLabel:
          default: false
          type: boolean
        uncorrectable:
          description: Indicates whether the field can be modified during record correction.
          default: false
          type: boolean
        value:
          description: Reference to the source field or fields. When a value is defined,
            it is copied from the parent field when changed. If multiple
            references are provided, the first truthy value is used.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field by its ID
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field by its ID
        analytics:
          description: Indicates whether the field is included in analytics. When enabled,
            its value becomes available in the analytics dashboard.
          default: false
          type: boolean
        type:
          type: string
          const: HTTP
        defaultValue:
          type: object
          properties:
            loading:
              type: boolean
            error:
              anyOf:
                - type: object
                  properties:
                    statusCode:
                      type: number
                    message:
                      type: string
                  required:
                    - statusCode
                    - message
                  additionalProperties: false
                - type: "null"
            data: {}
          required:
            - loading
            - data
          additionalProperties: false
        configuration:
          type: object
          properties:
            trigger:
              description: Reference to the field that triggers the HTTP request when its
                value changes. If not provided, the HTTP request is triggered
                once on component mount.
              type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
            url:
              type: string
              description: URL to send the HTTP request to
            method:
              type: string
              enum:
                - GET
                - POST
                - PUT
                - DELETE
            headers:
              type: object
              propertyNames:
                type: string
              additionalProperties:
                type: string
            body:
              type: object
              propertyNames:
                type: string
              additionalProperties: {}
            errorValue:
              description: Value to set if the request fails
            params:
              type: object
              propertyNames:
                type: string
              additionalProperties:
                anyOf:
                  - type: string
                  - type: object
                    properties:
                      $$field:
                        type: string
                        description: Id of the field to reference
                      $$subfield:
                        default: []
                        description: 'If the FieldValue is an object, subfield can be used to refer to
                          e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                        type: array
                        items:
                          type: string
                    required:
                      - $$field
                      - $$subfield
                    additionalProperties: false
                    description: Reference to a field by its ID
            timeout:
              default: 15000
              description: Request timeout in milliseconds
              type: number
          required:
            - url
            - method
            - timeout
          additionalProperties: false
      required:
        - id
        - label
        - type
        - configuration
      additionalProperties: false
      description: Makes a background HTTP request to an external service and stores
        the response so other fields can use it. Has no visible UI — pair with
        LOADER to show request status.
    AutocompleteField:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the field.
        label:
          description: Human-readable label of the field.
          $ref: "#/components/schemas/TranslationConfigOutput"
        parent:
          description: Reference to the parent field or fields. When a parent field
            changes, this field is reset.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field by its ID
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field by its ID
        required:
          description: Indicates whether the field is mandatory.
          default: false
          anyOf:
            - type: boolean
            - type: object
              properties:
                message:
                  description: Custom required validation message
                  $ref: "#/components/schemas/TranslationConfigOutput"
              required:
                - message
              additionalProperties: false
        conditionals:
          description: Conditions determining when the field is shown or enabled. By
            default, the field is always shown and enabled.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/FieldConditional"
        secured:
          description: Indicates whether the field is secured. Secured fields are not
            indexed for search and are only visible when explicitly assigned.
          default: false
          type: boolean
        placeholder:
          $ref: "#/components/schemas/TranslationConfigOutput"
        validation:
          description: Additional validation rules applied to the field.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/ValidationConfig"
        helperText:
          $ref: "#/components/schemas/TranslationConfigOutput"
        hideLabel:
          default: false
          type: boolean
        uncorrectable:
          description: Indicates whether the field can be modified during record correction.
          default: false
          type: boolean
        value:
          description: Reference to the source field or fields. When a value is defined,
            it is copied from the parent field when changed. If multiple
            references are provided, the first truthy value is used.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field by its ID
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field by its ID
        analytics:
          description: Indicates whether the field is included in analytics. When enabled,
            its value becomes available in the analytics dashboard.
          default: false
          type: boolean
        type:
          type: string
          const: AUTOCOMPLETE
        configuration:
          type: object
          properties:
            url:
              type: string
              description: URL to fetch autocomplete suggestions from. This should be a
                country config server endpoint.
            method:
              default: GET
              type: string
              enum:
                - GET
                - POST
            defaultOptions:
              description: Manual entry is supported through configuration, allowing users to
                provide values not currently represented in the dataset.
              type: array
              items:
                type: object
                properties:
                  label:
                    type: string
                  value:
                    type: string
                required:
                  - label
                  - value
                additionalProperties: false
          additionalProperties: false
      required:
        - id
        - label
        - type
        - configuration
      additionalProperties: false
      description: Generic autocomplete component designed for use with large
        dictionary-based datasets. The component supports dynamic retrieval of
        options from configurable data sources and is intended for datasets that
        may contain tens or hundreds of thousands of records.
    LinkButtonField:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the field.
        label:
          description: Human-readable label of the field.
          $ref: "#/components/schemas/TranslationConfigOutput"
        parent:
          description: Reference to the parent field or fields. When a parent field
            changes, this field is reset.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field by its ID
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field by its ID
        required:
          description: Indicates whether the field is mandatory.
          default: false
          anyOf:
            - type: boolean
            - type: object
              properties:
                message:
                  description: Custom required validation message
                  $ref: "#/components/schemas/TranslationConfigOutput"
              required:
                - message
              additionalProperties: false
        conditionals:
          description: Conditions determining when the field is shown or enabled. By
            default, the field is always shown and enabled.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/FieldConditional"
        secured:
          description: Indicates whether the field is secured. Secured fields are not
            indexed for search and are only visible when explicitly assigned.
          default: false
          type: boolean
        placeholder:
          $ref: "#/components/schemas/TranslationConfigOutput"
        validation:
          description: Additional validation rules applied to the field.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/ValidationConfig"
        helperText:
          $ref: "#/components/schemas/TranslationConfigOutput"
        hideLabel:
          default: false
          type: boolean
        uncorrectable:
          description: Indicates whether the field can be modified during record correction.
          default: false
          type: boolean
        value:
          description: Reference to the source field or fields. When a value is defined,
            it is copied from the parent field when changed. If multiple
            references are provided, the first truthy value is used.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field by its ID
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field by its ID
        analytics:
          description: Indicates whether the field is included in analytics. When enabled,
            its value becomes available in the analytics dashboard.
          default: false
          type: boolean
        type:
          type: string
          const: LINK_BUTTON
        configuration:
          type: object
          properties:
            url:
              type: string
              description: URL to open
            text:
              description: Text to display on the button
              $ref: "#/components/schemas/TranslationConfigOutput"
            icon:
              description: Icon for the button. You can find icons from OpenCRVS UI-Kit.
              type: string
          required:
            - url
            - text
          additionalProperties: false
      required:
        - id
        - label
        - type
        - configuration
      additionalProperties: false
      description: A button that opens a URL link
    VerificationStatus:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the field.
        label:
          description: Human-readable label of the field.
          $ref: "#/components/schemas/TranslationConfigOutput"
        parent:
          description: Reference to the parent field or fields. When a parent field
            changes, this field is reset.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field by its ID
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field by its ID
        required:
          description: Indicates whether the field is mandatory.
          default: false
          anyOf:
            - type: boolean
            - type: object
              properties:
                message:
                  description: Custom required validation message
                  $ref: "#/components/schemas/TranslationConfigOutput"
              required:
                - message
              additionalProperties: false
        conditionals:
          description: Conditions determining when the field is shown or enabled. By
            default, the field is always shown and enabled.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/FieldConditional"
        secured:
          description: Indicates whether the field is secured. Secured fields are not
            indexed for search and are only visible when explicitly assigned.
          default: false
          type: boolean
        placeholder:
          $ref: "#/components/schemas/TranslationConfigOutput"
        validation:
          description: Additional validation rules applied to the field.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/ValidationConfig"
        helperText:
          $ref: "#/components/schemas/TranslationConfigOutput"
        hideLabel:
          default: false
          type: boolean
        uncorrectable:
          description: Indicates whether the field can be modified during record correction.
          default: false
          type: boolean
        value:
          description: Reference to the source field or fields. When a value is defined,
            it is copied from the parent field when changed. If multiple
            references are provided, the first truthy value is used.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field by its ID
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field by its ID
        analytics:
          description: Indicates whether the field is included in analytics. When enabled,
            its value becomes available in the analytics dashboard.
          default: false
          type: boolean
        type:
          type: string
          const: VERIFICATION_STATUS
        defaultValue:
          type: string
          enum:
            - verified
            - authenticated
            - failed
            - pending
        configuration:
          type: object
          properties:
            status:
              description: Text to display on the status pill.
              $ref: "#/components/schemas/TranslationConfigOutput"
            description:
              description: Explaining text on the banner in form.
              $ref: "#/components/schemas/TranslationConfigOutput"
          required:
            - status
            - description
          additionalProperties: false
      required:
        - id
        - label
        - type
        - configuration
      additionalProperties: false
      description: Displays a verification state (e.g. ID verified / pending). Often
        paired with ID_READER — it can read its value off an ID_READER rather
        than holding its own.
    QrReaderField:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the field.
        label:
          description: Human-readable label of the field.
          $ref: "#/components/schemas/TranslationConfigOutput"
        parent:
          description: Reference to the parent field or fields. When a parent field
            changes, this field is reset.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field by its ID
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field by its ID
        required:
          description: Indicates whether the field is mandatory.
          default: false
          anyOf:
            - type: boolean
            - type: object
              properties:
                message:
                  description: Custom required validation message
                  $ref: "#/components/schemas/TranslationConfigOutput"
              required:
                - message
              additionalProperties: false
        conditionals:
          description: Conditions determining when the field is shown or enabled. By
            default, the field is always shown and enabled.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/FieldConditional"
        secured:
          description: Indicates whether the field is secured. Secured fields are not
            indexed for search and are only visible when explicitly assigned.
          default: false
          type: boolean
        placeholder:
          $ref: "#/components/schemas/TranslationConfigOutput"
        validation:
          description: Additional validation rules applied to the field.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/ValidationConfig"
        helperText:
          $ref: "#/components/schemas/TranslationConfigOutput"
        hideLabel:
          default: false
          type: boolean
        uncorrectable:
          description: Indicates whether the field can be modified during record correction.
          default: false
          type: boolean
        value:
          description: Reference to the source field or fields. When a value is defined,
            it is copied from the parent field when changed. If multiple
            references are provided, the first truthy value is used.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field by its ID
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field by its ID
        analytics:
          description: Indicates whether the field is included in analytics. When enabled,
            its value becomes available in the analytics dashboard.
          default: false
          type: boolean
        type:
          type: string
          const: QR_READER
        defaultValue:
          type: object
          properties:
            data: {}
          required:
            - data
          additionalProperties: false
        configuration:
          type: object
          properties:
            validator:
              $ref: "#/components/schemas/QrReaderFieldValidator"
          required:
            - validator
          additionalProperties: false
      required:
        - id
        - label
        - type
      additionalProperties: false
      description: QR code reader field, including optional JSON Schema validator.
    QrReaderFieldValidator:
      description: JSON Schema to validate the scanned QR code data against before
        populating the form fields.
    IdReaderField:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the field.
        label:
          description: Human-readable label of the field.
          $ref: "#/components/schemas/TranslationConfigOutput"
        parent:
          description: Reference to the parent field or fields. When a parent field
            changes, this field is reset.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field by its ID
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field by its ID
        required:
          description: Indicates whether the field is mandatory.
          default: false
          anyOf:
            - type: boolean
            - type: object
              properties:
                message:
                  description: Custom required validation message
                  $ref: "#/components/schemas/TranslationConfigOutput"
              required:
                - message
              additionalProperties: false
        conditionals:
          description: Conditions determining when the field is shown or enabled. By
            default, the field is always shown and enabled.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/FieldConditional"
        secured:
          description: Indicates whether the field is secured. Secured fields are not
            indexed for search and are only visible when explicitly assigned.
          default: false
          type: boolean
        placeholder:
          $ref: "#/components/schemas/TranslationConfigOutput"
        validation:
          description: Additional validation rules applied to the field.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/ValidationConfig"
        helperText:
          $ref: "#/components/schemas/TranslationConfigOutput"
        hideLabel:
          default: false
          type: boolean
        uncorrectable:
          description: Indicates whether the field can be modified during record correction.
          default: false
          type: boolean
        value:
          description: Reference to the source field or fields. When a value is defined,
            it is copied from the parent field when changed. If multiple
            references are provided, the first truthy value is used.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field by its ID
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field by its ID
        analytics:
          description: Indicates whether the field is included in analytics. When enabled,
            its value becomes available in the analytics dashboard.
          default: false
          type: boolean
        type:
          type: string
          const: ID_READER
        defaultValue:
          type: object
          properties:
            data: {}
          required:
            - data
          additionalProperties: false
        methods:
          type: array
          items:
            anyOf:
              - $ref: "#/components/schemas/QrReaderField"
              - $ref: "#/components/schemas/LinkButtonField"
            description: Methods for reading an ID
      required:
        - id
        - label
        - type
        - methods
      additionalProperties: false
      description: A wrapper around nested form fields, specifically QR_READER and
        LINK_BUTTON. It can hold the QR_READERs value.
    QueryParamReaderField:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the field.
        label:
          description: Human-readable label of the field.
          $ref: "#/components/schemas/TranslationConfigOutput"
        parent:
          description: Reference to the parent field or fields. When a parent field
            changes, this field is reset.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field by its ID
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field by its ID
        required:
          description: Indicates whether the field is mandatory.
          default: false
          anyOf:
            - type: boolean
            - type: object
              properties:
                message:
                  description: Custom required validation message
                  $ref: "#/components/schemas/TranslationConfigOutput"
              required:
                - message
              additionalProperties: false
        conditionals:
          description: Conditions determining when the field is shown or enabled. By
            default, the field is always shown and enabled.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/FieldConditional"
        secured:
          description: Indicates whether the field is secured. Secured fields are not
            indexed for search and are only visible when explicitly assigned.
          default: false
          type: boolean
        placeholder:
          $ref: "#/components/schemas/TranslationConfigOutput"
        validation:
          description: Additional validation rules applied to the field.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/ValidationConfig"
        helperText:
          $ref: "#/components/schemas/TranslationConfigOutput"
        hideLabel:
          default: false
          type: boolean
        uncorrectable:
          description: Indicates whether the field can be modified during record correction.
          default: false
          type: boolean
        value:
          description: Reference to the source field or fields. When a value is defined,
            it is copied from the parent field when changed. If multiple
            references are provided, the first truthy value is used.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field by its ID
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field by its ID
        analytics:
          description: Indicates whether the field is included in analytics. When enabled,
            its value becomes available in the analytics dashboard.
          default: false
          type: boolean
        type:
          type: string
          const: QUERY_PARAM_READER
        configuration:
          type: object
          properties:
            pickParams:
              type: array
              items:
                type: string
              description: List of query parameters to read from the URL
          required:
            - pickParams
          additionalProperties: false
      required:
        - id
        - label
        - type
        - configuration
      additionalProperties: false
      description: A field that maps URL query params into form values and clears them
        afterward
    LoaderField:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the field.
        label:
          description: Human-readable label of the field.
          $ref: "#/components/schemas/TranslationConfigOutput"
        parent:
          description: Reference to the parent field or fields. When a parent field
            changes, this field is reset.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field by its ID
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field by its ID
        required:
          description: Indicates whether the field is mandatory.
          default: false
          anyOf:
            - type: boolean
            - type: object
              properties:
                message:
                  description: Custom required validation message
                  $ref: "#/components/schemas/TranslationConfigOutput"
              required:
                - message
              additionalProperties: false
        conditionals:
          description: Conditions determining when the field is shown or enabled. By
            default, the field is always shown and enabled.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/FieldConditional"
        secured:
          description: Indicates whether the field is secured. Secured fields are not
            indexed for search and are only visible when explicitly assigned.
          default: false
          type: boolean
        placeholder:
          $ref: "#/components/schemas/TranslationConfigOutput"
        validation:
          description: Additional validation rules applied to the field.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/ValidationConfig"
        helperText:
          $ref: "#/components/schemas/TranslationConfigOutput"
        hideLabel:
          description: Loader field does not show a label by default
          default: true
          type: boolean
        uncorrectable:
          description: Indicates whether the field can be modified during record correction.
          default: false
          type: boolean
        value:
          description: Reference to the source field or fields. When a value is defined,
            it is copied from the parent field when changed. If multiple
            references are provided, the first truthy value is used.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field by its ID
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field by its ID
        analytics:
          description: Indicates whether the field is included in analytics. When enabled,
            its value becomes available in the analytics dashboard.
          default: false
          type: boolean
        type:
          type: string
          const: LOADER
        variant:
          default: default
          type: string
          enum:
            - default
            - highlighted
        configuration:
          type: object
          properties:
            text:
              description: Display text above the loading spinner
              $ref: "#/components/schemas/TranslationConfigOutput"
          required:
            - text
          additionalProperties: false
      required:
        - id
        - label
        - type
        - configuration
      additionalProperties: false
      description: A non-interactive field that indicates an in progress operation in form
    SearchField:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the field.
        label:
          description: Human-readable label of the field.
          $ref: "#/components/schemas/TranslationConfigOutput"
        parent:
          description: Reference to the parent field or fields. When a parent field
            changes, this field is reset.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field by its ID
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field by its ID
        required:
          description: Indicates whether the field is mandatory.
          default: false
          anyOf:
            - type: boolean
            - type: object
              properties:
                message:
                  description: Custom required validation message
                  $ref: "#/components/schemas/TranslationConfigOutput"
              required:
                - message
              additionalProperties: false
        conditionals:
          description: Conditions determining when the field is shown or enabled. By
            default, the field is always shown and enabled.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/FieldConditional"
        secured:
          description: Indicates whether the field is secured. Secured fields are not
            indexed for search and are only visible when explicitly assigned.
          default: false
          type: boolean
        placeholder:
          $ref: "#/components/schemas/TranslationConfigOutput"
        validation:
          description: Additional validation rules applied to the field.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/ValidationConfig"
        helperText:
          $ref: "#/components/schemas/TranslationConfigOutput"
        hideLabel:
          default: false
          type: boolean
        uncorrectable:
          description: Indicates whether the field can be modified during record correction.
          default: false
          type: boolean
        value:
          description: Reference to the source field or fields. When a value is defined,
            it is copied from the parent field when changed. If multiple
            references are provided, the first truthy value is used.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field by its ID
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field by its ID
        analytics:
          description: Indicates whether the field is included in analytics. When enabled,
            its value becomes available in the analytics dashboard.
          default: false
          type: boolean
        type:
          type: string
          const: SEARCH
        defaultValue:
          type: object
          properties:
            loading:
              type: boolean
            error:
              anyOf:
                - type: object
                  properties:
                    statusCode:
                      type: number
                    message:
                      type: string
                  required:
                    - statusCode
                    - message
                  additionalProperties: false
                - type: "null"
            data: {}
          required:
            - loading
            - data
          additionalProperties: false
        configuration:
          type: object
          properties:
            query:
              default:
                type: and
                clauses:
                  - eventType: tennis-club-membership
                    status:
                      type: anyOf
                      terms:
                        - CREATED
                        - NOTIFIED
                        - DECLARED
                        - REGISTERED
                        - ARCHIVED
                    updatedAt:
                      type: range
                      gte: 2025-05-22
                      lte: 2025-05-29
                    data: {}
              $ref: "#/components/schemas/QueryTypeOutput"
            limit:
              default: 100
              type: number
            offset:
              default: 0
              type: number
            validation:
              $ref: "#/components/schemas/ValidationConfig"
            indicators:
              type: object
              properties:
                loading:
                  description: Text to display while the search is in progress
                  $ref: "#/components/schemas/TranslationConfigOutput"
                offline:
                  description: Text to display when the application is offline
                  $ref: "#/components/schemas/TranslationConfigOutput"
                noResultsError:
                  description: Text to display when no results are found during the search
                  $ref: "#/components/schemas/TranslationConfigOutput"
                httpError:
                  description: Text to display when there is an HTTP error during the search
                  $ref: "#/components/schemas/TranslationConfigOutput"
                confirmButton:
                  $ref: "#/components/schemas/TranslationConfigOutput"
                clearButton:
                  $ref: "#/components/schemas/TranslationConfigOutput"
                clearModal:
                  type: object
                  properties:
                    title:
                      $ref: "#/components/schemas/TranslationConfigOutput"
                    description:
                      $ref: "#/components/schemas/TranslationConfigOutput"
                    cancel:
                      $ref: "#/components/schemas/TranslationConfigOutput"
                    confirm:
                      $ref: "#/components/schemas/TranslationConfigOutput"
                  additionalProperties: false
                ok:
                  $ref: "#/components/schemas/TranslationConfigOutput"
              additionalProperties: false
          required:
            - query
            - limit
            - offset
            - validation
          additionalProperties: false
      required:
        - id
        - label
        - type
        - configuration
      additionalProperties: false
      description: A search input field
    CustomField:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the field.
        label:
          description: Human-readable label of the field.
          $ref: "#/components/schemas/TranslationConfigOutput"
        parent:
          description: Reference to the parent field or fields. When a parent field
            changes, this field is reset.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field by its ID
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field by its ID
        required:
          description: Indicates whether the field is mandatory.
          default: false
          anyOf:
            - type: boolean
            - type: object
              properties:
                message:
                  description: Custom required validation message
                  $ref: "#/components/schemas/TranslationConfigOutput"
              required:
                - message
              additionalProperties: false
        conditionals:
          description: Conditions determining when the field is shown or enabled. By
            default, the field is always shown and enabled.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/FieldConditional"
        secured:
          description: Indicates whether the field is secured. Secured fields are not
            indexed for search and are only visible when explicitly assigned.
          default: false
          type: boolean
        placeholder:
          $ref: "#/components/schemas/TranslationConfigOutput"
        validation:
          description: Additional validation rules applied to the field.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/ValidationConfig"
        helperText:
          $ref: "#/components/schemas/TranslationConfigOutput"
        hideLabel:
          default: false
          type: boolean
        uncorrectable:
          description: Indicates whether the field can be modified during record correction.
          default: false
          type: boolean
        value:
          description: Reference to the source field or fields. When a value is defined,
            it is copied from the parent field when changed. If multiple
            references are provided, the first truthy value is used.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field by its ID
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field by its ID
        analytics:
          description: Indicates whether the field is included in analytics. When enabled,
            its value becomes available in the analytics dashboard.
          default: false
          type: boolean
        type:
          type: string
          const: CUSTOM
        defaultValue: {}
        src:
          type: string
          description: Module source path for the custom field component
        configuration: {}
      required:
        - id
        - label
        - type
        - src
      additionalProperties: false
      description: An expiremental custom field that is defined by a module source path
    HiddenField:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the field.
        label:
          description: Human-readable label of the field.
          $ref: "#/components/schemas/TranslationConfigOutput"
        parent:
          description: Reference to the parent field or fields. When a parent field
            changes, this field is reset.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field by its ID
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field by its ID
        required:
          default: false
          type: boolean
        conditionals:
          description: Conditions determining when the field is shown or enabled. By
            default, the field is always shown and enabled.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/FieldConditional"
        secured:
          description: Indicates whether the field is secured. Secured fields are not
            indexed for search and are only visible when explicitly assigned.
          default: false
          type: boolean
        placeholder:
          $ref: "#/components/schemas/TranslationConfigOutput"
        validation:
          description: Additional validation rules applied to the field.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/ValidationConfig"
        helperText:
          $ref: "#/components/schemas/TranslationConfigOutput"
        hideLabel:
          default: false
          type: boolean
        uncorrectable:
          description: Indicates whether the field can be modified during record correction.
          default: false
          type: boolean
        value:
          description: Reference to the source field or fields. When a value is defined,
            it is copied from the parent field when changed. If multiple
            references are provided, the first truthy value is used.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field by its ID
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field by its ID
        analytics:
          description: Indicates whether the field is included in analytics. When enabled,
            its value becomes available in the analytics dashboard.
          default: false
          type: boolean
        type:
          type: string
          const: ALPHA_HIDDEN
        defaultValue:
          type: string
      required:
        - id
        - label
        - type
      additionalProperties: false
      description: A non-interactive, hidden field that only hold a value in the form
    UserRoleField:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the field.
        label:
          description: Human-readable label of the field.
          $ref: "#/components/schemas/TranslationConfigOutput"
        parent:
          description: Reference to the parent field or fields. When a parent field
            changes, this field is reset.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field by its ID
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field by its ID
        required:
          description: Indicates whether the field is mandatory.
          default: false
          anyOf:
            - type: boolean
            - type: object
              properties:
                message:
                  description: Custom required validation message
                  $ref: "#/components/schemas/TranslationConfigOutput"
              required:
                - message
              additionalProperties: false
        conditionals:
          description: Conditions determining when the field is shown or enabled. By
            default, the field is always shown and enabled.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/FieldConditional"
        secured:
          description: Indicates whether the field is secured. Secured fields are not
            indexed for search and are only visible when explicitly assigned.
          default: false
          type: boolean
        placeholder:
          $ref: "#/components/schemas/TranslationConfigOutput"
        validation:
          description: Additional validation rules applied to the field.
          default: []
          type: array
          items:
            $ref: "#/components/schemas/ValidationConfig"
        helperText:
          $ref: "#/components/schemas/TranslationConfigOutput"
        hideLabel:
          default: false
          type: boolean
        uncorrectable:
          description: Indicates whether the field can be modified during record correction.
          default: false
          type: boolean
        value:
          description: Reference to the source field or fields. When a value is defined,
            it is copied from the parent field when changed. If multiple
            references are provided, the first truthy value is used.
          anyOf:
            - type: object
              properties:
                $$field:
                  type: string
                  description: Id of the field to reference
                $$subfield:
                  default: []
                  description: 'If the FieldValue is an object, subfield can be used to refer to
                    e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                  type: array
                  items:
                    type: string
              required:
                - $$field
                - $$subfield
              additionalProperties: false
              description: Reference to a field by its ID
            - type: array
              items:
                type: object
                properties:
                  $$field:
                    type: string
                    description: Id of the field to reference
                  $$subfield:
                    default: []
                    description: 'If the FieldValue is an object, subfield can be used to refer to
                      e.g. `["foo", "bar"]` in `{ foo: { bar: 3 } }`'
                    type: array
                    items:
                      type: string
                required:
                  - $$field
                  - $$subfield
                additionalProperties: false
                description: Reference to a field by its ID
        analytics:
          description: Indicates whether the field is included in analytics. When enabled,
            its value becomes available in the analytics dashboard.
          default: false
          type: boolean
        type:
          type: string
          const: USER_ROLE
        defaultValue:
          type: string
      required:
        - id
        - label
        - type
      additionalProperties: false
      description: A select dropdown that is automatically populated with available
        user roles
    DeclareActionConfig:
      type: object
      properties:
        label:
          description: Human readable description of the action
          $ref: "#/components/schemas/TranslationConfigOutput"
        flags:
          default: []
          description: Flag actions which are executed when the action is performed.
          type: array
          items:
            $ref: "#/components/schemas/ActionFlagConfig"
        supportingCopy:
          description: Text displayed on the confirmation dialog
          $ref: "#/components/schemas/TranslationConfigOutput"
        icon:
          type: string
          description: Icon representing the action
        conditionals:
          description: Conditionals which can disable or hide actions.
          type: array
          items:
            $ref: "#/components/schemas/ActionConditional"
        deduplication:
          $ref: "#/components/schemas/DeduplicationConfig"
        type:
          type: string
          const: DECLARE
        review:
          type: object
          properties:
            title:
              description: Title of the review page
              $ref: "#/components/schemas/TranslationConfigOutput"
            fields:
              type: array
              items:
                $ref: "#/components/schemas/FieldConfig"
              description: Fields displayed on the review page for annotations.
          required:
            - title
            - fields
          additionalProperties: false
          description: Configuration of the review page fields.
        dialogCopy:
          type: object
          properties:
            notify:
              description: Confirmation text for the notify action
              $ref: "#/components/schemas/TranslationConfigOutput"
            declare:
              description: Confirmation text for the declare action
              $ref: "#/components/schemas/TranslationConfigOutput"
            register:
              description: Confirmation text for the register action
              $ref: "#/components/schemas/TranslationConfigOutput"
          required:
            - notify
            - declare
            - register
          additionalProperties: false
      required:
        - label
        - flags
        - type
        - review
      additionalProperties: false
      description: Configuration for the declare action. Includes review-page fields.
        Shared with the notify action (ActionType.NOTIFY).
    DeduplicationConfig:
      type: object
      properties:
        id:
          type: string
        label:
          $ref: "#/components/schemas/TranslationConfigOutput"
        query:
          $ref: "#/components/schemas/Clause"
      required:
        - id
        - label
        - query
      additionalProperties: false
      description: Configuration for duplicate detection on a declare or register
        action. The query is built from fuzzy / strict / date-range matchers
        combined with and/or/not.
    Clause:
      oneOf:
        - type: object
          properties:
            type:
              type: string
              const: not
            clause:
              $ref: "#/components/schemas/Clause"
          required:
            - type
            - clause
          additionalProperties: false
        - type: object
          properties:
            type:
              type: string
              const: and
            clauses:
              type: array
              items:
                $ref: "#/components/schemas/Clause"
          required:
            - type
            - clauses
          additionalProperties: false
        - type: object
          properties:
            type:
              type: string
              const: or
            clauses:
              type: array
              items:
                $ref: "#/components/schemas/Clause"
          required:
            - type
            - clauses
          additionalProperties: false
        - type: object
          properties:
            fieldId:
              type: string
            options:
              default:
                fuzziness: AUTO:4,7
                boost: 1
              type: object
              properties:
                fuzziness:
                  default: AUTO:4,7
                  anyOf:
                    - type: string
                    - type: number
                boost:
                  default: 1
                  type: number
                matchAgainst:
                  type: string
              required:
                - fuzziness
                - boost
              additionalProperties: false
            type:
              type: string
              const: fuzzy
          required:
            - fieldId
            - options
            - type
          additionalProperties: false
        - type: object
          properties:
            fieldId:
              type: string
            options:
              default:
                boost: 1
              type: object
              properties:
                boost:
                  default: 1
                  type: number
                value:
                  type: string
                matchAgainst:
                  type: string
              required:
                - boost
              additionalProperties: false
            type:
              type: string
              const: strict
          required:
            - fieldId
            - options
            - type
          additionalProperties: false
        - type: object
          properties:
            fieldId:
              type: string
            options:
              type: object
              properties:
                pivot:
                  type: number
                days:
                  type: number
                boost:
                  default: 1
                  type: number
                matchAgainst:
                  type: string
              required:
                - days
                - boost
              additionalProperties: false
            type:
              type: string
              const: dateRange
          required:
            - fieldId
            - options
            - type
          additionalProperties: false
      type: object
    RejectActionConfig:
      type: object
      properties:
        label:
          description: Human readable description of the action
          $ref: "#/components/schemas/TranslationConfigOutput"
        flags:
          default: []
          description: Flag actions which are executed when the action is performed.
          type: array
          items:
            $ref: "#/components/schemas/ActionFlagConfig"
        supportingCopy:
          description: Text displayed on the confirmation dialog
          $ref: "#/components/schemas/TranslationConfigOutput"
        icon:
          type: string
          description: Icon representing the action
        conditionals:
          description: Conditionals which can disable or hide actions.
          type: array
          items:
            $ref: "#/components/schemas/ActionConditional"
        type:
          type: string
          const: REJECT
      required:
        - label
        - flags
        - type
      additionalProperties: false
      description: Configuration for rejecting a record before registration.
    RegisterActionConfig:
      type: object
      properties:
        label:
          description: Human readable description of the action
          $ref: "#/components/schemas/TranslationConfigOutput"
        flags:
          default: []
          description: Flag actions which are executed when the action is performed.
          type: array
          items:
            $ref: "#/components/schemas/ActionFlagConfig"
        supportingCopy:
          description: Text displayed on the confirmation dialog
          $ref: "#/components/schemas/TranslationConfigOutput"
        icon:
          type: string
          description: Icon representing the action
        conditionals:
          description: Conditionals which can disable or hide actions.
          type: array
          items:
            $ref: "#/components/schemas/ActionConditional"
        deduplication:
          $ref: "#/components/schemas/DeduplicationConfig"
        type:
          type: string
          const: REGISTER
      required:
        - label
        - flags
        - type
      additionalProperties: false
      description: Configuration for registering a record.
    PrintCertificateActionConfig:
      type: object
      properties:
        label:
          description: Human readable description of the action
          $ref: "#/components/schemas/TranslationConfigOutput"
        flags:
          default: []
          description: Flag actions which are executed when the action is performed.
          type: array
          items:
            $ref: "#/components/schemas/ActionFlagConfig"
        supportingCopy:
          description: Text displayed on the confirmation dialog
          $ref: "#/components/schemas/TranslationConfigOutput"
        icon:
          type: string
          description: Icon representing the action
        conditionals:
          description: Conditionals which can disable or hide actions.
          type: array
          items:
            $ref: "#/components/schemas/ActionConditional"
        type:
          type: string
          const: PRINT_CERTIFICATE
        printForm:
          type: object
          properties:
            label:
              description: Human readable description of the form
              $ref: "#/components/schemas/TranslationConfigOutput"
            pages:
              type: array
              items:
                $ref: "#/components/schemas/PageConfig"
          required:
            - label
            - pages
          additionalProperties: false
          description: Configuration of the form used for system actions beyond
            declaration, supporting a wider range of page types.
      required:
        - label
        - flags
        - type
        - printForm
      additionalProperties: false
      description: Configuration for printing a certificate of a registered record.
    PageConfig:
      oneOf:
        - type: object
          properties:
            id:
              type: string
              description: Unique identifier for the page
            title:
              description: Header title of the page
              $ref: "#/components/schemas/TranslationConfigOutput"
            requireCompletionToContinue:
              default: false
              description: If true, all required fields must be filled before continuing to
                the next page
              type: boolean
            fields:
              type: array
              items:
                $ref: "#/components/schemas/FieldConfig"
              description: Fields to be rendered on the page
            conditional:
              description: Page will be shown if condition is met. If conditional is not
                defined, the page will be always shown.
              $ref: "#/components/schemas/Conditional"
            type:
              default: FORM
              type: string
              const: FORM
          required:
            - id
            - title
            - requireCompletionToContinue
            - fields
            - type
          additionalProperties: false
        - type: object
          properties:
            id:
              type: string
              description: Unique identifier for the page
            title:
              description: Header title of the page
              $ref: "#/components/schemas/TranslationConfigOutput"
            requireCompletionToContinue:
              default: false
              description: If true, all required fields must be filled before continuing to
                the next page
              type: boolean
            fields:
              type: array
              items:
                $ref: "#/components/schemas/FieldConfig"
              description: Fields to be rendered on the page
            conditional:
              description: Page will be shown if condition is met. If conditional is not
                defined, the page will be always shown.
              $ref: "#/components/schemas/Conditional"
            type:
              type: string
              const: VERIFICATION
            actions:
              $ref: "#/components/schemas/VerificationActionConfig"
          required:
            - id
            - title
            - requireCompletionToContinue
            - fields
            - type
            - actions
          additionalProperties: false
      description: Configuration for a single page in a form. Either a form page with
        fields and a continue button, or a verification page with verify/cancel
        options.
      type: object
    VerificationActionConfig:
      type: object
      properties:
        verify:
          type: object
          properties:
            label:
              $ref: "#/components/schemas/TranslationConfigOutput"
          required:
            - label
          additionalProperties: false
        cancel:
          type: object
          properties:
            label:
              $ref: "#/components/schemas/TranslationConfigOutput"
            confirmation:
              type: object
              properties:
                title:
                  $ref: "#/components/schemas/TranslationConfigOutput"
                body:
                  $ref: "#/components/schemas/TranslationConfigOutput"
              required:
                - title
                - body
              additionalProperties: false
          required:
            - label
            - confirmation
          additionalProperties: false
      required:
        - verify
        - cancel
      additionalProperties: false
      description: Verification action configuration
    RequestCorrectionActionConfig:
      type: object
      properties:
        label:
          description: Human readable description of the action
          $ref: "#/components/schemas/TranslationConfigOutput"
        flags:
          default: []
          description: Flag actions which are executed when the action is performed.
          type: array
          items:
            $ref: "#/components/schemas/ActionFlagConfig"
        supportingCopy:
          description: Text displayed on the confirmation dialog
          $ref: "#/components/schemas/TranslationConfigOutput"
        icon:
          type: string
          description: Icon representing the action
        conditionals:
          description: Conditionals which can disable or hide actions.
          type: array
          items:
            $ref: "#/components/schemas/ActionConditional"
        type:
          type: string
          const: REQUEST_CORRECTION
        correctionForm:
          type: object
          properties:
            label:
              description: Human readable description of the form
              $ref: "#/components/schemas/TranslationConfigOutput"
            pages:
              type: array
              items:
                $ref: "#/components/schemas/PageConfig"
          required:
            - label
            - pages
          additionalProperties: false
          description: Configuration of the form used for system actions beyond
            declaration, supporting a wider range of page types.
      required:
        - label
        - flags
        - type
        - correctionForm
      additionalProperties: false
      description: Configuration for requesting a correction on a registered record.
    EditActionConfig:
      type: object
      properties:
        label:
          description: Human readable description of the action
          $ref: "#/components/schemas/TranslationConfigOutput"
        flags:
          default: []
          description: Flag actions which are executed when the action is performed.
          type: array
          items:
            $ref: "#/components/schemas/ActionFlagConfig"
        supportingCopy:
          description: Text displayed on the confirmation dialog
          $ref: "#/components/schemas/TranslationConfigOutput"
        icon:
          type: string
          description: Icon representing the action
        conditionals:
          description: Conditionals which can disable or hide actions.
          type: array
          items:
            $ref: "#/components/schemas/ActionConditional"
        type:
          type: string
          const: EDIT
        dialogCopy:
          type: object
          properties:
            notify:
              description: Confirmation text for the notify with edits action
              $ref: "#/components/schemas/TranslationConfigOutput"
            declare:
              description: Confirmation text for the declare with edits action
              $ref: "#/components/schemas/TranslationConfigOutput"
            register:
              description: Confirmation text for the register with edits action
              $ref: "#/components/schemas/TranslationConfigOutput"
          required:
            - notify
            - declare
            - register
          additionalProperties: false
      required:
        - label
        - flags
        - type
        - dialogCopy
      additionalProperties: false
      description: Configuration for editing a record before registration.
    ArchiveActionConfig:
      type: object
      properties:
        label:
          description: Human readable description of the action
          $ref: "#/components/schemas/TranslationConfigOutput"
        flags:
          default: []
          description: Flag actions which are executed when the action is performed.
          type: array
          items:
            $ref: "#/components/schemas/ActionFlagConfig"
        supportingCopy:
          description: Text displayed on the confirmation dialog
          $ref: "#/components/schemas/TranslationConfigOutput"
        icon:
          type: string
          description: Icon representing the action
        conditionals:
          description: Conditionals which can disable or hide actions.
          type: array
          items:
            $ref: "#/components/schemas/ActionConditional"
        type:
          type: string
          const: ARCHIVE
      required:
        - label
        - flags
        - type
      additionalProperties: false
      description: Configuration for archiving a record.
    CustomActionConfig:
      type: object
      properties:
        label:
          description: Human readable description of the action
          $ref: "#/components/schemas/TranslationConfigOutput"
        flags:
          default: []
          description: Flag actions which are executed when the action is performed.
          type: array
          items:
            $ref: "#/components/schemas/ActionFlagConfig"
        supportingCopy:
          description: Text displayed on the confirmation dialog
          $ref: "#/components/schemas/TranslationConfigOutput"
        icon:
          type: string
          description: Icon representing the action
        conditionals:
          description: Conditionals which can disable or hide actions.
          type: array
          items:
            $ref: "#/components/schemas/ActionConditional"
        type:
          type: string
          const: CUSTOM
        customActionType:
          type: string
          description: Type identifier of the custom action.
        form:
          type: array
          items:
            $ref: "#/components/schemas/FieldConfig"
          description: Form configuration for the custom action. The form configured here
            will be used on the custom action confirmation modal.
        auditHistoryLabel:
          description: The label to show in audit history for this action. For example
            "Approved".
          $ref: "#/components/schemas/TranslationConfigOutput"
      required:
        - label
        - flags
        - type
        - customActionType
        - form
        - auditHistoryLabel
      additionalProperties: false
      description: Configuration for a country-defined custom action. An event may
        include any number of these.
    DeclarationFormConfig:
      type: object
      properties:
        label:
          description: Human readable description of the form
          $ref: "#/components/schemas/TranslationConfigOutput"
        pages:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                description: Unique identifier for the page
              title:
                description: Header title of the page
                $ref: "#/components/schemas/TranslationConfigOutput"
              requireCompletionToContinue:
                default: false
                description: If true, all required fields must be filled before continuing to
                  the next page
                type: boolean
              fields:
                type: array
                items:
                  $ref: "#/components/schemas/FieldConfig"
                description: Fields to be rendered on the page
              conditional:
                description: Page will be shown if condition is met. If conditional is not
                  defined, the page will be always shown.
                $ref: "#/components/schemas/Conditional"
              type:
                default: FORM
                type: string
                const: FORM
            required:
              - id
              - title
              - requireCompletionToContinue
              - fields
              - type
            additionalProperties: false
      required:
        - label
        - pages
      additionalProperties: false
      description: Configuration of the declaration form.
    AdvancedSearchConfig:
      type: object
      properties:
        title:
          description: Advanced search tab title
          $ref: "#/components/schemas/TranslationConfigOutput"
        fields:
          type: array
          items:
            oneOf:
              - type: object
                properties:
                  config:
                    type: object
                    properties:
                      type:
                        type: string
                        enum:
                          - fuzzy
                          - exact
                          - range
                          - within
                        description: Determines the search type of field. How to match value.
                      searchFields:
                        description: "

                          \      Defines multiple form fields that should be
                          searched when this field has a value.

                          \      All specified fields will be combined using OR
                          logic.


                          \      Example: { searchFields: ['mother.name',
                          'father.name', 'informant.name'] }

                          \      Will search all fields and return a record if
                          any of the fields match the search value.    \ 

                          \      "
                        type: array
                        items:
                          type: string
                    required:
                      - type
                    additionalProperties: false
                  type:
                    description: "

                      \      Explicitly specify the field type for searchFields.

                      \      This is required when searchFields is defined, to
                      show the correct control in the UI.

                      \       \ 

                      \      Example: FieldType.NAME for name fields,
                      FieldType.TEXT for text fields, FieldType.DATE for date
                      fields, etc.

                      \      "
                    type: string
                    enum:
                      - NAME
                      - PHONE
                      - ID
                      - ADDRESS
                      - TEXT
                      - NUMBER
                      - NUMBER_WITH_UNIT
                      - TEXTAREA
                      - EMAIL
                      - DATE
                      - AGE
                      - DATE_RANGE
                      - SELECT_DATE_RANGE
                      - TIME
                      - IMAGE_VIEW
                      - PARAGRAPH
                      - HEADING
                      - PAGE_HEADER
                      - RADIO_GROUP
                      - FIELD_GROUP
                      - FILE
                      - FILE_WITH_OPTIONS
                      - BULLET_LIST
                      - CHECKBOX
                      - SELECT
                      - COUNTRY
                      - LOCATION
                      - DIVIDER
                      - ADMINISTRATIVE_AREA
                      - FACILITY
                      - OFFICE
                      - SIGNATURE
                      - DATA
                      - BUTTON
                      - AUTOCOMPLETE
                      - SEARCH
                      - ALPHA_PRINT_BUTTON
                      - HTTP
                      - LINK_BUTTON
                      - VERIFICATION_STATUS
                      - QUERY_PARAM_READER
                      - QR_READER
                      - ID_READER
                      - LOADER
                      - ALPHA_HIDDEN
                      - USER_ROLE
                      - CUSTOM
                  label:
                    description: "

                      \      Explicitly specify the label for searchFields.

                      \      This is required when searchFields is
                      defined.           \ 

                      \      "
                    $ref: "#/components/schemas/TranslationConfigOutput"
                  options:
                    type: array
                    items:
                      type: object
                      properties:
                        value:
                          type: string
                          description: The value of the option
                        label:
                          anyOf:
                            - type: string
                            - $ref: "#/components/schemas/TranslationConfigOutput"
                          description: The label of the option
                        conditionals:
                          default: []
                          type: array
                          items:
                            $ref: "#/components/schemas/ActionConditional"
                      required:
                        - value
                        - label
                      additionalProperties: false
                  searchCriteriaLabelPrefix:
                    description: "

                      \    This property determines whether to add a prefix
                      (such as \"Child\" or \"Applicant\") before the field
                      label

                      \    when rendering search parameter labels — for example,
                      in the search results page to indicate which fields were
                      used in the search.


                      \    For example, a field config like { id:
                      \"child.name.firstname\", label: { defaultMessage: \"First
                      Name(s)\" } } would render as \"First Name(s)\" by
                      default.


                      \    A field config like { id: \"mother.firstname\",
                      label: { defaultMessage: \"First Name(s)\" } } would also
                      render as \"First Name(s)\" by default.


                      \    So, if both child.name.firstname and mother.firstname
                      are used in a search, the resulting search criteria labels
                      would be \"First Name(s)\", \"First Name(s)\",

                      \    which is ambiguous.


                      \    Now, if we treat the field ID prefix as a label
                      (e.g., \"applicant.firstname\" → \"Applicant\"), and the
                      field label is already

                      \    descriptive — like { id: \"applicant.firstname\",
                      label: { defaultMessage: \"Applicant's First Name\" } } —
                      then the resulting

                      \    label would be \"Applicant Applicant's First Name\",
                      which is redundant and awkward.


                      \    By setting searchCriteriaLabelPrefix to a translation
                      config object, we can explicitly define the desired prefix

                      \    in the country-config > event.advancedSearch
                      configuration. For example: field(\"child.dob\", {
                      searchCriteriaLabelPrefix: TranslationConfig }).

                      \    "
                    $ref: "#/components/schemas/TranslationConfigOutput"
                  conditionals:
                    description: "

                      \       In advanced search, we sometimes need to override
                      the default field visibility conditionals.


                      \       For example, Informant fields in the declaration
                      form may have conditional logic

                      \       that hides them based on other field values. Since
                      the advanced search form reuses

                      \       the declaration form config, those same
                      conditionals would apply by default.


                      \       However, in advanced search we often want to make
                      all Informant fields searchable,

                      \       regardless of their original visibility logic. To
                      do this, we explicitly set their

                      \       'conditionals' to an empty array ('[]') in the
                      search config. This ensures they

                      \       are always rendered in the advanced search form.

                      \      "
                    type: array
                    items:
                      $ref: "#/components/schemas/FieldConditional"
                  validations:
                    description: Option for overriding the field validations specifically for
                      advanced search form.
                    type: array
                    items:
                      $ref: "#/components/schemas/ValidationConfig"
                  fieldId:
                    type: string
                  fieldType:
                    type: string
                    const: field
                required:
                  - config
                  - fieldId
                  - fieldType
                additionalProperties: false
              - type: object
                properties:
                  config:
                    type: object
                    properties:
                      type:
                        type: string
                        enum:
                          - fuzzy
                          - exact
                          - range
                          - within
                        description: Determines the search type of field. How to match value.
                      searchFields:
                        description: "

                          \      Defines multiple form fields that should be
                          searched when this field has a value.

                          \      All specified fields will be combined using OR
                          logic.


                          \      Example: { searchFields: ['mother.name',
                          'father.name', 'informant.name'] }

                          \      Will search all fields and return a record if
                          any of the fields match the search value.    \ 

                          \      "
                        type: array
                        items:
                          type: string
                    required:
                      - type
                    additionalProperties: false
                  type:
                    description: "

                      \      Explicitly specify the field type for searchFields.

                      \      This is required when searchFields is defined, to
                      show the correct control in the UI.

                      \       \ 

                      \      Example: FieldType.NAME for name fields,
                      FieldType.TEXT for text fields, FieldType.DATE for date
                      fields, etc.

                      \      "
                    type: string
                    enum:
                      - NAME
                      - PHONE
                      - ID
                      - ADDRESS
                      - TEXT
                      - NUMBER
                      - NUMBER_WITH_UNIT
                      - TEXTAREA
                      - EMAIL
                      - DATE
                      - AGE
                      - DATE_RANGE
                      - SELECT_DATE_RANGE
                      - TIME
                      - IMAGE_VIEW
                      - PARAGRAPH
                      - HEADING
                      - PAGE_HEADER
                      - RADIO_GROUP
                      - FIELD_GROUP
                      - FILE
                      - FILE_WITH_OPTIONS
                      - BULLET_LIST
                      - CHECKBOX
                      - SELECT
                      - COUNTRY
                      - LOCATION
                      - DIVIDER
                      - ADMINISTRATIVE_AREA
                      - FACILITY
                      - OFFICE
                      - SIGNATURE
                      - DATA
                      - BUTTON
                      - AUTOCOMPLETE
                      - SEARCH
                      - ALPHA_PRINT_BUTTON
                      - HTTP
                      - LINK_BUTTON
                      - VERIFICATION_STATUS
                      - QUERY_PARAM_READER
                      - QR_READER
                      - ID_READER
                      - LOADER
                      - ALPHA_HIDDEN
                      - USER_ROLE
                      - CUSTOM
                  label:
                    description: "

                      \      Explicitly specify the label for searchFields.

                      \      This is required when searchFields is
                      defined.           \ 

                      \      "
                    $ref: "#/components/schemas/TranslationConfigOutput"
                  options:
                    type: array
                    items:
                      type: object
                      properties:
                        value:
                          type: string
                          description: The value of the option
                        label:
                          anyOf:
                            - type: string
                            - $ref: "#/components/schemas/TranslationConfigOutput"
                          description: The label of the option
                        conditionals:
                          default: []
                          type: array
                          items:
                            $ref: "#/components/schemas/ActionConditional"
                      required:
                        - value
                        - label
                      additionalProperties: false
                  searchCriteriaLabelPrefix:
                    description: "

                      \    This property determines whether to add a prefix
                      (such as \"Child\" or \"Applicant\") before the field
                      label

                      \    when rendering search parameter labels — for example,
                      in the search results page to indicate which fields were
                      used in the search.


                      \    For example, a field config like { id:
                      \"child.name.firstname\", label: { defaultMessage: \"First
                      Name(s)\" } } would render as \"First Name(s)\" by
                      default.


                      \    A field config like { id: \"mother.firstname\",
                      label: { defaultMessage: \"First Name(s)\" } } would also
                      render as \"First Name(s)\" by default.


                      \    So, if both child.name.firstname and mother.firstname
                      are used in a search, the resulting search criteria labels
                      would be \"First Name(s)\", \"First Name(s)\",

                      \    which is ambiguous.


                      \    Now, if we treat the field ID prefix as a label
                      (e.g., \"applicant.firstname\" → \"Applicant\"), and the
                      field label is already

                      \    descriptive — like { id: \"applicant.firstname\",
                      label: { defaultMessage: \"Applicant's First Name\" } } —
                      then the resulting

                      \    label would be \"Applicant Applicant's First Name\",
                      which is redundant and awkward.


                      \    By setting searchCriteriaLabelPrefix to a translation
                      config object, we can explicitly define the desired prefix

                      \    in the country-config > event.advancedSearch
                      configuration. For example: field(\"child.dob\", {
                      searchCriteriaLabelPrefix: TranslationConfig }).

                      \    "
                    $ref: "#/components/schemas/TranslationConfigOutput"
                  conditionals:
                    description: "

                      \       In advanced search, we sometimes need to override
                      the default field visibility conditionals.


                      \       For example, Informant fields in the declaration
                      form may have conditional logic

                      \       that hides them based on other field values. Since
                      the advanced search form reuses

                      \       the declaration form config, those same
                      conditionals would apply by default.


                      \       However, in advanced search we often want to make
                      all Informant fields searchable,

                      \       regardless of their original visibility logic. To
                      do this, we explicitly set their

                      \       'conditionals' to an empty array ('[]') in the
                      search config. This ensures they

                      \       are always rendered in the advanced search form.

                      \      "
                    type: array
                    items:
                      $ref: "#/components/schemas/FieldConditional"
                  validations:
                    description: Option for overriding the field validations specifically for
                      advanced search form.
                    type: array
                    items:
                      $ref: "#/components/schemas/ValidationConfig"
                  fieldId:
                    type: string
                    enum:
                      - event.trackingId
                      - event.status
                      - event.legalStatuses.REGISTERED.acceptedAt
                      - event.legalStatuses.REGISTERED.createdAtLocation
                      - event.legalStatuses.REGISTERED.registrationNumber
                      - event.updatedAt
                  fieldType:
                    type: string
                    const: event
                required:
                  - config
                  - fieldId
                  - fieldType
                additionalProperties: false
            type: object
          description: Advanced search fields within the tab.
      required:
        - title
        - fields
      additionalProperties: false
      description: Configuration of one advanced search tab. Each tab has a title and
        a list of searchable fields — either declaration fields (via `field()`)
        or event metadata (via `event()`).
    FlagConfig:
      type: object
      properties:
        id:
          type: string
          description: Custom flag identifier defined by the country config.
        requiresAction:
          type: boolean
          description: Indicates if this flag expects an action to be performed to be
            cleared.
        label:
          description: Human readable label of the flag.
          $ref: "#/components/schemas/TranslationConfigOutput"
      required:
        - id
        - requiresAction
        - label
      additionalProperties: false
      description: Configuration for a custom flag that can be added to or removed
        from records by event actions.
    EventDocument:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          description: Unique identifier of the event.
        type:
          type: string
          description: Type of the event (e.g. birth, death, marriage).
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
          description: Timestamp indicating when the event was created.
        updatedAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
          description: Timestamp of the last update, excluding changes from actions.
        actions:
          type: array
          items:
            anyOf:
              - $ref: "#/components/schemas/ActionDocument"
              - type: object
                properties:
                  id:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    description: Unique identifier of the action.
                  transactionId:
                    type: string
                    description: Unique identifier of the transaction.
                  createdByUserType:
                    type: string
                    enum:
                      - user
                      - system
                    description: Indicates whether the action was created by a human-user or by a
                      system-user.
                  createdAt:
                    type: string
                    format: date-time
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                    description: Timestamp indicating when the action was created.
                  createdBy:
                    type: string
                    description: Identifier of the user who created the action.
                  createdByRole:
                    description: Role of the user who created the action.
                    type: string
                  createdBySignature:
                    description: Reference to the signature of the user who created the action.
                    anyOf:
                      - type: string
                        description: A relative path within the S3 bucket, never starting with /. e.g.
                          document-id.jpg or directory/document-id.jpg. The
                          document service constructs the full /bucket/path
                          internally.
                      - type: "null"
                  createdAtLocation:
                    description: Reference to the location of the user who created the action.
                    anyOf:
                      - type: string
                        format: uuid
                        pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      - type: "null"
                  status:
                    type: string
                    const: Rejected
                  originalActionId:
                    anyOf:
                      - type: string
                        format: uuid
                        pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      - type: "null"
                    description: Reference to the original action asynchronously accepted or
                      rejected by a third-party integration.
                  type:
                    type: string
                    enum:
                      - NOTIFY
                      - DECLARE
                      - EDIT
                      - REGISTER
                      - REJECT
                      - ARCHIVE
                      - PRINT_CERTIFICATE
                      - REQUEST_CORRECTION
                      - APPROVE_CORRECTION
                      - REJECT_CORRECTION
                      - CUSTOM
                required:
                  - id
                  - transactionId
                  - createdByUserType
                  - createdAt
                  - createdBy
                  - status
                  - type
                additionalProperties: false
          description: Ordered list of actions associated with the event.
        trackingId:
          type: string
          description: System-generated tracking identifier used to look up the event.
      required:
        - id
        - type
        - createdAt
        - updatedAt
        - actions
        - trackingId
      additionalProperties: false
    ActionDocument:
      oneOf:
        - $ref: "#/components/schemas/CreatedAction"
        - $ref: "#/components/schemas/RejectAction"
        - $ref: "#/components/schemas/DuplicateDetectedAction"
        - $ref: "#/components/schemas/MarkNotDuplicateAction"
        - $ref: "#/components/schemas/MarkAsDuplicateAction"
        - $ref: "#/components/schemas/ArchiveAction"
        - $ref: "#/components/schemas/NotifiedAction"
        - $ref: "#/components/schemas/RegisterAction"
        - $ref: "#/components/schemas/DeclareAction"
        - $ref: "#/components/schemas/AssignedAction"
        - $ref: "#/components/schemas/RequestedCorrectionAction"
        - $ref: "#/components/schemas/ApprovedCorrectionAction"
        - $ref: "#/components/schemas/RejectedCorrectionAction"
        - $ref: "#/components/schemas/UnassignedAction"
        - $ref: "#/components/schemas/PrintCertificateAction"
        - $ref: "#/components/schemas/ReadAction"
        - $ref: "#/components/schemas/EditAction"
        - $ref: "#/components/schemas/CustomAction"
      type: object
      discriminator:
        propertyName: type
        mapping:
          CREATE: "#/components/schemas/CreatedAction"
          REJECT: "#/components/schemas/RejectAction"
          DUPLICATE_DETECTED: "#/components/schemas/DuplicateDetectedAction"
          MARK_AS_NOT_DUPLICATE: "#/components/schemas/MarkNotDuplicateAction"
          MARK_AS_DUPLICATE: "#/components/schemas/MarkAsDuplicateAction"
          ARCHIVE: "#/components/schemas/ArchiveAction"
          NOTIFY: "#/components/schemas/NotifiedAction"
          REGISTER: "#/components/schemas/RegisterAction"
          DECLARE: "#/components/schemas/DeclareAction"
          ASSIGN: "#/components/schemas/AssignedAction"
          REQUEST_CORRECTION: "#/components/schemas/RequestedCorrectionAction"
          APPROVE_CORRECTION: "#/components/schemas/ApprovedCorrectionAction"
          REJECT_CORRECTION: "#/components/schemas/RejectedCorrectionAction"
          UNASSIGN: "#/components/schemas/UnassignedAction"
          PRINT_CERTIFICATE: "#/components/schemas/PrintCertificateAction"
          READ: "#/components/schemas/ReadAction"
          EDIT: "#/components/schemas/EditAction"
          CUSTOM: "#/components/schemas/CustomAction"
    CreatedAction:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          description: Unique identifier of the action.
        transactionId:
          type: string
          description: Unique identifier of the transaction.
        createdByUserType:
          type: string
          enum:
            - user
            - system
          description: Indicates whether the action was created by a human-user or by a
            system-user.
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
          description: Timestamp indicating when the action was created.
        createdBy:
          type: string
          description: Identifier of the user who created the action.
        createdByRole:
          description: Role of the user who created the action.
          type: string
        createdBySignature:
          description: Reference to the signature of the user who created the action.
          anyOf:
            - type: string
              description: A relative path within the S3 bucket, never starting with /. e.g.
                document-id.jpg or directory/document-id.jpg. The document
                service constructs the full /bucket/path internally.
            - type: "null"
        createdAtLocation:
          description: Reference to the location of the user who created the action.
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        declaration:
          type: object
          propertyNames:
            type: string
          additionalProperties:
            description: Value that matches exactly one of the possible schema types
              (TextValue, DateValue, DateRangeFieldValue). The best matching
              schema is chosen by priority.
          description: Declaration data defined by the ActionConfig. Supports partial
            updates.
        annotation:
          anyOf:
            - type: object
              propertyNames:
                type: string
              additionalProperties:
                description: Value that matches exactly one of the possible schema types
                  (TextValue, DateValue, DateRangeFieldValue). The best matching
                  schema is chosen by priority.
              description: Record of field-level changes made by an action. Supports partial
                updates and nullable values.
            - type: "null"
          description: Action-specific metadata used to annotate the event.
        status:
          type: string
          enum:
            - Requested
            - Accepted
            - Rejected
          description: Current status of the action. Actions may be validated
            asynchronously by third-party integrations.
        originalActionId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
          description: Reference to the original action asynchronously accepted or
            rejected by a third-party integration.
        type:
          type: string
          const: CREATE
      required:
        - id
        - transactionId
        - createdByUserType
        - createdAt
        - createdBy
        - declaration
        - status
        - type
      additionalProperties: false
    RejectAction:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          description: Unique identifier of the action.
        transactionId:
          type: string
          description: Unique identifier of the transaction.
        createdByUserType:
          type: string
          enum:
            - user
            - system
          description: Indicates whether the action was created by a human-user or by a
            system-user.
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
          description: Timestamp indicating when the action was created.
        createdBy:
          type: string
          description: Identifier of the user who created the action.
        createdByRole:
          description: Role of the user who created the action.
          type: string
        createdBySignature:
          description: Reference to the signature of the user who created the action.
          anyOf:
            - type: string
              description: A relative path within the S3 bucket, never starting with /. e.g.
                document-id.jpg or directory/document-id.jpg. The document
                service constructs the full /bucket/path internally.
            - type: "null"
        createdAtLocation:
          description: Reference to the location of the user who created the action.
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        declaration:
          type: object
          propertyNames:
            type: string
          additionalProperties:
            description: Value that matches exactly one of the possible schema types
              (TextValue, DateValue, DateRangeFieldValue). The best matching
              schema is chosen by priority.
          description: Declaration data defined by the ActionConfig. Supports partial
            updates.
        annotation:
          anyOf:
            - type: object
              propertyNames:
                type: string
              additionalProperties:
                description: Value that matches exactly one of the possible schema types
                  (TextValue, DateValue, DateRangeFieldValue). The best matching
                  schema is chosen by priority.
              description: Record of field-level changes made by an action. Supports partial
                updates and nullable values.
            - type: "null"
          description: Action-specific metadata used to annotate the event.
        status:
          type: string
          enum:
            - Requested
            - Accepted
            - Rejected
          description: Current status of the action. Actions may be validated
            asynchronously by third-party integrations.
        originalActionId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
          description: Reference to the original action asynchronously accepted or
            rejected by a third-party integration.
        type:
          type: string
          const: REJECT
        content:
          type: object
          properties:
            reason:
              type: string
              minLength: 1
              description: Message describing the reason for rejecting or archiving the event.
          required:
            - reason
          additionalProperties: false
      required:
        - id
        - transactionId
        - createdByUserType
        - createdAt
        - createdBy
        - declaration
        - status
        - type
        - content
      additionalProperties: false
    DuplicateDetectedAction:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          description: Unique identifier of the action.
        transactionId:
          type: string
          description: Unique identifier of the transaction.
        createdByUserType:
          type: string
          enum:
            - user
            - system
          description: Indicates whether the action was created by a human-user or by a
            system-user.
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
          description: Timestamp indicating when the action was created.
        createdBy:
          type: string
          description: Identifier of the user who created the action.
        createdByRole:
          description: Role of the user who created the action.
          type: string
        createdBySignature:
          description: Reference to the signature of the user who created the action.
          anyOf:
            - type: string
              description: A relative path within the S3 bucket, never starting with /. e.g.
                document-id.jpg or directory/document-id.jpg. The document
                service constructs the full /bucket/path internally.
            - type: "null"
        createdAtLocation:
          description: Reference to the location of the user who created the action.
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        declaration:
          type: object
          propertyNames:
            type: string
          additionalProperties:
            description: Value that matches exactly one of the possible schema types
              (TextValue, DateValue, DateRangeFieldValue). The best matching
              schema is chosen by priority.
          description: Declaration data defined by the ActionConfig. Supports partial
            updates.
        annotation:
          anyOf:
            - type: object
              propertyNames:
                type: string
              additionalProperties:
                description: Value that matches exactly one of the possible schema types
                  (TextValue, DateValue, DateRangeFieldValue). The best matching
                  schema is chosen by priority.
              description: Record of field-level changes made by an action. Supports partial
                updates and nullable values.
            - type: "null"
          description: Action-specific metadata used to annotate the event.
        status:
          type: string
          enum:
            - Requested
            - Accepted
            - Rejected
          description: Current status of the action. Actions may be validated
            asynchronously by third-party integrations.
        originalActionId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
          description: Reference to the original action asynchronously accepted or
            rejected by a third-party integration.
        type:
          type: string
          const: DUPLICATE_DETECTED
        content:
          type: object
          properties:
            duplicates:
              type: array
              items:
                type: object
                properties:
                  id:
                    type: string
                    format: uuid
                    pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  trackingId:
                    type: string
                required:
                  - id
                  - trackingId
                additionalProperties: false
          required:
            - duplicates
          additionalProperties: false
      required:
        - id
        - transactionId
        - createdByUserType
        - createdAt
        - createdBy
        - declaration
        - status
        - type
        - content
      additionalProperties: false
    MarkNotDuplicateAction:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          description: Unique identifier of the action.
        transactionId:
          type: string
          description: Unique identifier of the transaction.
        createdByUserType:
          type: string
          enum:
            - user
            - system
          description: Indicates whether the action was created by a human-user or by a
            system-user.
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
          description: Timestamp indicating when the action was created.
        createdBy:
          type: string
          description: Identifier of the user who created the action.
        createdByRole:
          description: Role of the user who created the action.
          type: string
        createdBySignature:
          description: Reference to the signature of the user who created the action.
          anyOf:
            - type: string
              description: A relative path within the S3 bucket, never starting with /. e.g.
                document-id.jpg or directory/document-id.jpg. The document
                service constructs the full /bucket/path internally.
            - type: "null"
        createdAtLocation:
          description: Reference to the location of the user who created the action.
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        declaration:
          type: object
          propertyNames:
            type: string
          additionalProperties:
            description: Value that matches exactly one of the possible schema types
              (TextValue, DateValue, DateRangeFieldValue). The best matching
              schema is chosen by priority.
          description: Declaration data defined by the ActionConfig. Supports partial
            updates.
        annotation:
          anyOf:
            - type: object
              propertyNames:
                type: string
              additionalProperties:
                description: Value that matches exactly one of the possible schema types
                  (TextValue, DateValue, DateRangeFieldValue). The best matching
                  schema is chosen by priority.
              description: Record of field-level changes made by an action. Supports partial
                updates and nullable values.
            - type: "null"
          description: Action-specific metadata used to annotate the event.
        status:
          type: string
          enum:
            - Requested
            - Accepted
            - Rejected
          description: Current status of the action. Actions may be validated
            asynchronously by third-party integrations.
        originalActionId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
          description: Reference to the original action asynchronously accepted or
            rejected by a third-party integration.
        type:
          type: string
          const: MARK_AS_NOT_DUPLICATE
      required:
        - id
        - transactionId
        - createdByUserType
        - createdAt
        - createdBy
        - declaration
        - status
        - type
      additionalProperties: false
    MarkAsDuplicateAction:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          description: Unique identifier of the action.
        transactionId:
          type: string
          description: Unique identifier of the transaction.
        createdByUserType:
          type: string
          enum:
            - user
            - system
          description: Indicates whether the action was created by a human-user or by a
            system-user.
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
          description: Timestamp indicating when the action was created.
        createdBy:
          type: string
          description: Identifier of the user who created the action.
        createdByRole:
          description: Role of the user who created the action.
          type: string
        createdBySignature:
          description: Reference to the signature of the user who created the action.
          anyOf:
            - type: string
              description: A relative path within the S3 bucket, never starting with /. e.g.
                document-id.jpg or directory/document-id.jpg. The document
                service constructs the full /bucket/path internally.
            - type: "null"
        createdAtLocation:
          description: Reference to the location of the user who created the action.
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        declaration:
          type: object
          propertyNames:
            type: string
          additionalProperties:
            description: Value that matches exactly one of the possible schema types
              (TextValue, DateValue, DateRangeFieldValue). The best matching
              schema is chosen by priority.
          description: Declaration data defined by the ActionConfig. Supports partial
            updates.
        annotation:
          anyOf:
            - type: object
              propertyNames:
                type: string
              additionalProperties:
                description: Value that matches exactly one of the possible schema types
                  (TextValue, DateValue, DateRangeFieldValue). The best matching
                  schema is chosen by priority.
              description: Record of field-level changes made by an action. Supports partial
                updates and nullable values.
            - type: "null"
          description: Action-specific metadata used to annotate the event.
        status:
          type: string
          enum:
            - Requested
            - Accepted
            - Rejected
          description: Current status of the action. Actions may be validated
            asynchronously by third-party integrations.
        originalActionId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
          description: Reference to the original action asynchronously accepted or
            rejected by a third-party integration.
        type:
          type: string
          const: MARK_AS_DUPLICATE
        content:
          type: object
          properties:
            duplicateOf:
              type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          required:
            - duplicateOf
          additionalProperties: false
      required:
        - id
        - transactionId
        - createdByUserType
        - createdAt
        - createdBy
        - declaration
        - status
        - type
      additionalProperties: false
    ArchiveAction:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          description: Unique identifier of the action.
        transactionId:
          type: string
          description: Unique identifier of the transaction.
        createdByUserType:
          type: string
          enum:
            - user
            - system
          description: Indicates whether the action was created by a human-user or by a
            system-user.
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
          description: Timestamp indicating when the action was created.
        createdBy:
          type: string
          description: Identifier of the user who created the action.
        createdByRole:
          description: Role of the user who created the action.
          type: string
        createdBySignature:
          description: Reference to the signature of the user who created the action.
          anyOf:
            - type: string
              description: A relative path within the S3 bucket, never starting with /. e.g.
                document-id.jpg or directory/document-id.jpg. The document
                service constructs the full /bucket/path internally.
            - type: "null"
        createdAtLocation:
          description: Reference to the location of the user who created the action.
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        declaration:
          type: object
          propertyNames:
            type: string
          additionalProperties:
            description: Value that matches exactly one of the possible schema types
              (TextValue, DateValue, DateRangeFieldValue). The best matching
              schema is chosen by priority.
          description: Declaration data defined by the ActionConfig. Supports partial
            updates.
        annotation:
          anyOf:
            - type: object
              propertyNames:
                type: string
              additionalProperties:
                description: Value that matches exactly one of the possible schema types
                  (TextValue, DateValue, DateRangeFieldValue). The best matching
                  schema is chosen by priority.
              description: Record of field-level changes made by an action. Supports partial
                updates and nullable values.
            - type: "null"
          description: Action-specific metadata used to annotate the event.
        status:
          type: string
          enum:
            - Requested
            - Accepted
            - Rejected
          description: Current status of the action. Actions may be validated
            asynchronously by third-party integrations.
        originalActionId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
          description: Reference to the original action asynchronously accepted or
            rejected by a third-party integration.
        type:
          type: string
          const: ARCHIVE
        content:
          type: object
          properties:
            reason:
              type: string
              minLength: 1
              description: Message describing the reason for rejecting or archiving the event.
          required:
            - reason
          additionalProperties: false
      required:
        - id
        - transactionId
        - createdByUserType
        - createdAt
        - createdBy
        - declaration
        - status
        - type
        - content
      additionalProperties: false
    NotifiedAction:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          description: Unique identifier of the action.
        transactionId:
          type: string
          description: Unique identifier of the transaction.
        createdByUserType:
          type: string
          enum:
            - user
            - system
          description: Indicates whether the action was created by a human-user or by a
            system-user.
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
          description: Timestamp indicating when the action was created.
        createdBy:
          type: string
          description: Identifier of the user who created the action.
        createdByRole:
          description: Role of the user who created the action.
          type: string
        createdBySignature:
          description: Reference to the signature of the user who created the action.
          anyOf:
            - type: string
              description: A relative path within the S3 bucket, never starting with /. e.g.
                document-id.jpg or directory/document-id.jpg. The document
                service constructs the full /bucket/path internally.
            - type: "null"
        createdAtLocation:
          description: Reference to the location of the user who created the action.
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        declaration:
          type: object
          propertyNames:
            type: string
          additionalProperties:
            description: Value that matches exactly one of the possible schema types
              (TextValue, DateValue, DateRangeFieldValue). The best matching
              schema is chosen by priority.
          description: Declaration data defined by the ActionConfig. Supports partial
            updates.
        annotation:
          anyOf:
            - type: object
              propertyNames:
                type: string
              additionalProperties:
                description: Value that matches exactly one of the possible schema types
                  (TextValue, DateValue, DateRangeFieldValue). The best matching
                  schema is chosen by priority.
              description: Record of field-level changes made by an action. Supports partial
                updates and nullable values.
            - type: "null"
          description: Action-specific metadata used to annotate the event.
        status:
          type: string
          enum:
            - Requested
            - Accepted
            - Rejected
          description: Current status of the action. Actions may be validated
            asynchronously by third-party integrations.
        originalActionId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
          description: Reference to the original action asynchronously accepted or
            rejected by a third-party integration.
        type:
          type: string
          const: NOTIFY
      required:
        - id
        - transactionId
        - createdByUserType
        - createdAt
        - createdBy
        - declaration
        - status
        - type
      additionalProperties: false
    RegisterAction:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          description: Unique identifier of the action.
        transactionId:
          type: string
          description: Unique identifier of the transaction.
        createdByUserType:
          type: string
          enum:
            - user
            - system
          description: Indicates whether the action was created by a human-user or by a
            system-user.
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
          description: Timestamp indicating when the action was created.
        createdBy:
          type: string
          description: Identifier of the user who created the action.
        createdByRole:
          description: Role of the user who created the action.
          type: string
        createdBySignature:
          description: Reference to the signature of the user who created the action.
          anyOf:
            - type: string
              description: A relative path within the S3 bucket, never starting with /. e.g.
                document-id.jpg or directory/document-id.jpg. The document
                service constructs the full /bucket/path internally.
            - type: "null"
        createdAtLocation:
          description: Reference to the location of the user who created the action.
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        declaration:
          type: object
          propertyNames:
            type: string
          additionalProperties:
            description: Value that matches exactly one of the possible schema types
              (TextValue, DateValue, DateRangeFieldValue). The best matching
              schema is chosen by priority.
          description: Declaration data defined by the ActionConfig. Supports partial
            updates.
        annotation:
          anyOf:
            - type: object
              propertyNames:
                type: string
              additionalProperties:
                description: Value that matches exactly one of the possible schema types
                  (TextValue, DateValue, DateRangeFieldValue). The best matching
                  schema is chosen by priority.
              description: Record of field-level changes made by an action. Supports partial
                updates and nullable values.
            - type: "null"
          description: Action-specific metadata used to annotate the event.
        status:
          type: string
          enum:
            - Requested
            - Accepted
            - Rejected
          description: Current status of the action. Actions may be validated
            asynchronously by third-party integrations.
        originalActionId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
          description: Reference to the original action asynchronously accepted or
            rejected by a third-party integration.
        type:
          type: string
          const: REGISTER
        registrationNumber:
          description: Registration number of the event. Always present for accepted
            registrations.
          type: string
      required:
        - id
        - transactionId
        - createdByUserType
        - createdAt
        - createdBy
        - declaration
        - status
        - type
      additionalProperties: false
    DeclareAction:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          description: Unique identifier of the action.
        transactionId:
          type: string
          description: Unique identifier of the transaction.
        createdByUserType:
          type: string
          enum:
            - user
            - system
          description: Indicates whether the action was created by a human-user or by a
            system-user.
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
          description: Timestamp indicating when the action was created.
        createdBy:
          type: string
          description: Identifier of the user who created the action.
        createdByRole:
          description: Role of the user who created the action.
          type: string
        createdBySignature:
          description: Reference to the signature of the user who created the action.
          anyOf:
            - type: string
              description: A relative path within the S3 bucket, never starting with /. e.g.
                document-id.jpg or directory/document-id.jpg. The document
                service constructs the full /bucket/path internally.
            - type: "null"
        createdAtLocation:
          description: Reference to the location of the user who created the action.
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        declaration:
          type: object
          propertyNames:
            type: string
          additionalProperties:
            description: Value that matches exactly one of the possible schema types
              (TextValue, DateValue, DateRangeFieldValue). The best matching
              schema is chosen by priority.
          description: Declaration data defined by the ActionConfig. Supports partial
            updates.
        annotation:
          anyOf:
            - type: object
              propertyNames:
                type: string
              additionalProperties:
                description: Value that matches exactly one of the possible schema types
                  (TextValue, DateValue, DateRangeFieldValue). The best matching
                  schema is chosen by priority.
              description: Record of field-level changes made by an action. Supports partial
                updates and nullable values.
            - type: "null"
          description: Action-specific metadata used to annotate the event.
        status:
          type: string
          enum:
            - Requested
            - Accepted
            - Rejected
          description: Current status of the action. Actions may be validated
            asynchronously by third-party integrations.
        originalActionId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
          description: Reference to the original action asynchronously accepted or
            rejected by a third-party integration.
        type:
          type: string
          const: DECLARE
      required:
        - id
        - transactionId
        - createdByUserType
        - createdAt
        - createdBy
        - declaration
        - status
        - type
      additionalProperties: false
    AssignedAction:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          description: Unique identifier of the action.
        transactionId:
          type: string
          description: Unique identifier of the transaction.
        createdByUserType:
          type: string
          enum:
            - user
            - system
          description: Indicates whether the action was created by a human-user or by a
            system-user.
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
          description: Timestamp indicating when the action was created.
        createdBy:
          type: string
          description: Identifier of the user who created the action.
        createdByRole:
          description: Role of the user who created the action.
          type: string
        createdBySignature:
          description: Reference to the signature of the user who created the action.
          anyOf:
            - type: string
              description: A relative path within the S3 bucket, never starting with /. e.g.
                document-id.jpg or directory/document-id.jpg. The document
                service constructs the full /bucket/path internally.
            - type: "null"
        createdAtLocation:
          description: Reference to the location of the user who created the action.
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        declaration:
          type: object
          propertyNames:
            type: string
          additionalProperties:
            description: Value that matches exactly one of the possible schema types
              (TextValue, DateValue, DateRangeFieldValue). The best matching
              schema is chosen by priority.
          description: Declaration data defined by the ActionConfig. Supports partial
            updates.
        annotation:
          anyOf:
            - type: object
              propertyNames:
                type: string
              additionalProperties:
                description: Value that matches exactly one of the possible schema types
                  (TextValue, DateValue, DateRangeFieldValue). The best matching
                  schema is chosen by priority.
              description: Record of field-level changes made by an action. Supports partial
                updates and nullable values.
            - type: "null"
          description: Action-specific metadata used to annotate the event.
        status:
          type: string
          enum:
            - Requested
            - Accepted
            - Rejected
          description: Current status of the action. Actions may be validated
            asynchronously by third-party integrations.
        originalActionId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
          description: Reference to the original action asynchronously accepted or
            rejected by a third-party integration.
        type:
          type: string
          const: ASSIGN
        assignedTo:
          type: string
          description: Identifier of the user to whom the action is assigned.
      required:
        - id
        - transactionId
        - createdByUserType
        - createdAt
        - createdBy
        - declaration
        - status
        - type
        - assignedTo
      additionalProperties: false
    RequestedCorrectionAction:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          description: Unique identifier of the action.
        transactionId:
          type: string
          description: Unique identifier of the transaction.
        createdByUserType:
          type: string
          enum:
            - user
            - system
          description: Indicates whether the action was created by a human-user or by a
            system-user.
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
          description: Timestamp indicating when the action was created.
        createdBy:
          type: string
          description: Identifier of the user who created the action.
        createdByRole:
          description: Role of the user who created the action.
          type: string
        createdBySignature:
          description: Reference to the signature of the user who created the action.
          anyOf:
            - type: string
              description: A relative path within the S3 bucket, never starting with /. e.g.
                document-id.jpg or directory/document-id.jpg. The document
                service constructs the full /bucket/path internally.
            - type: "null"
        createdAtLocation:
          description: Reference to the location of the user who created the action.
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        declaration:
          type: object
          propertyNames:
            type: string
          additionalProperties:
            description: Value that matches exactly one of the possible schema types
              (TextValue, DateValue, DateRangeFieldValue). The best matching
              schema is chosen by priority.
          description: Declaration data defined by the ActionConfig. Supports partial
            updates.
        annotation:
          anyOf:
            - type: object
              propertyNames:
                type: string
              additionalProperties:
                description: Value that matches exactly one of the possible schema types
                  (TextValue, DateValue, DateRangeFieldValue). The best matching
                  schema is chosen by priority.
              description: Record of field-level changes made by an action. Supports partial
                updates and nullable values.
            - type: "null"
          description: Action-specific metadata used to annotate the event.
        status:
          type: string
          enum:
            - Requested
            - Accepted
            - Rejected
          description: Current status of the action. Actions may be validated
            asynchronously by third-party integrations.
        originalActionId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
          description: Reference to the original action asynchronously accepted or
            rejected by a third-party integration.
        type:
          type: string
          const: REQUEST_CORRECTION
      required:
        - id
        - transactionId
        - createdByUserType
        - createdAt
        - createdBy
        - declaration
        - status
        - type
      additionalProperties: false
    ApprovedCorrectionAction:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          description: Unique identifier of the action.
        transactionId:
          type: string
          description: Unique identifier of the transaction.
        createdByUserType:
          type: string
          enum:
            - user
            - system
          description: Indicates whether the action was created by a human-user or by a
            system-user.
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
          description: Timestamp indicating when the action was created.
        createdBy:
          type: string
          description: Identifier of the user who created the action.
        createdByRole:
          description: Role of the user who created the action.
          type: string
        createdBySignature:
          description: Reference to the signature of the user who created the action.
          anyOf:
            - type: string
              description: A relative path within the S3 bucket, never starting with /. e.g.
                document-id.jpg or directory/document-id.jpg. The document
                service constructs the full /bucket/path internally.
            - type: "null"
        createdAtLocation:
          description: Reference to the location of the user who created the action.
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        declaration:
          type: object
          propertyNames:
            type: string
          additionalProperties:
            description: Value that matches exactly one of the possible schema types
              (TextValue, DateValue, DateRangeFieldValue). The best matching
              schema is chosen by priority.
          description: Declaration data defined by the ActionConfig. Supports partial
            updates.
        annotation:
          anyOf:
            - type: object
              propertyNames:
                type: string
              additionalProperties:
                description: Value that matches exactly one of the possible schema types
                  (TextValue, DateValue, DateRangeFieldValue). The best matching
                  schema is chosen by priority.
              description: Record of field-level changes made by an action. Supports partial
                updates and nullable values.
            - type: "null"
          description: Action-specific metadata used to annotate the event.
        status:
          type: string
          enum:
            - Requested
            - Accepted
            - Rejected
          description: Current status of the action. Actions may be validated
            asynchronously by third-party integrations.
        originalActionId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
          description: Reference to the original action asynchronously accepted or
            rejected by a third-party integration.
        type:
          type: string
          const: APPROVE_CORRECTION
        requestId:
          type: string
      required:
        - id
        - transactionId
        - createdByUserType
        - createdAt
        - createdBy
        - declaration
        - status
        - type
        - requestId
      additionalProperties: false
    RejectedCorrectionAction:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          description: Unique identifier of the action.
        transactionId:
          type: string
          description: Unique identifier of the transaction.
        createdByUserType:
          type: string
          enum:
            - user
            - system
          description: Indicates whether the action was created by a human-user or by a
            system-user.
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
          description: Timestamp indicating when the action was created.
        createdBy:
          type: string
          description: Identifier of the user who created the action.
        createdByRole:
          description: Role of the user who created the action.
          type: string
        createdBySignature:
          description: Reference to the signature of the user who created the action.
          anyOf:
            - type: string
              description: A relative path within the S3 bucket, never starting with /. e.g.
                document-id.jpg or directory/document-id.jpg. The document
                service constructs the full /bucket/path internally.
            - type: "null"
        createdAtLocation:
          description: Reference to the location of the user who created the action.
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        declaration:
          type: object
          propertyNames:
            type: string
          additionalProperties:
            description: Value that matches exactly one of the possible schema types
              (TextValue, DateValue, DateRangeFieldValue). The best matching
              schema is chosen by priority.
          description: Declaration data defined by the ActionConfig. Supports partial
            updates.
        annotation:
          anyOf:
            - type: object
              propertyNames:
                type: string
              additionalProperties:
                description: Value that matches exactly one of the possible schema types
                  (TextValue, DateValue, DateRangeFieldValue). The best matching
                  schema is chosen by priority.
              description: Record of field-level changes made by an action. Supports partial
                updates and nullable values.
            - type: "null"
          description: Action-specific metadata used to annotate the event.
        status:
          type: string
          enum:
            - Requested
            - Accepted
            - Rejected
          description: Current status of the action. Actions may be validated
            asynchronously by third-party integrations.
        originalActionId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
          description: Reference to the original action asynchronously accepted or
            rejected by a third-party integration.
        type:
          type: string
          const: REJECT_CORRECTION
        requestId:
          type: string
        content:
          type: object
          properties:
            reason:
              type: string
              minLength: 1
              description: Message describing the reason for rejecting or archiving the event.
          required:
            - reason
          additionalProperties: false
      required:
        - id
        - transactionId
        - createdByUserType
        - createdAt
        - createdBy
        - declaration
        - status
        - type
        - requestId
        - content
      additionalProperties: false
    UnassignedAction:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          description: Unique identifier of the action.
        transactionId:
          type: string
          description: Unique identifier of the transaction.
        createdByUserType:
          type: string
          enum:
            - user
            - system
          description: Indicates whether the action was created by a human-user or by a
            system-user.
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
          description: Timestamp indicating when the action was created.
        createdBy:
          type: string
          description: Identifier of the user who created the action.
        createdByRole:
          description: Role of the user who created the action.
          type: string
        createdBySignature:
          description: Reference to the signature of the user who created the action.
          anyOf:
            - type: string
              description: A relative path within the S3 bucket, never starting with /. e.g.
                document-id.jpg or directory/document-id.jpg. The document
                service constructs the full /bucket/path internally.
            - type: "null"
        createdAtLocation:
          description: Reference to the location of the user who created the action.
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        declaration:
          type: object
          propertyNames:
            type: string
          additionalProperties:
            description: Value that matches exactly one of the possible schema types
              (TextValue, DateValue, DateRangeFieldValue). The best matching
              schema is chosen by priority.
          description: Declaration data defined by the ActionConfig. Supports partial
            updates.
        annotation:
          anyOf:
            - type: object
              propertyNames:
                type: string
              additionalProperties:
                description: Value that matches exactly one of the possible schema types
                  (TextValue, DateValue, DateRangeFieldValue). The best matching
                  schema is chosen by priority.
              description: Record of field-level changes made by an action. Supports partial
                updates and nullable values.
            - type: "null"
          description: Action-specific metadata used to annotate the event.
        status:
          type: string
          enum:
            - Requested
            - Accepted
            - Rejected
          description: Current status of the action. Actions may be validated
            asynchronously by third-party integrations.
        originalActionId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
          description: Reference to the original action asynchronously accepted or
            rejected by a third-party integration.
        type:
          type: string
          const: UNASSIGN
      required:
        - id
        - transactionId
        - createdByUserType
        - createdAt
        - createdBy
        - declaration
        - status
        - type
      additionalProperties: false
    PrintCertificateAction:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          description: Unique identifier of the action.
        transactionId:
          type: string
          description: Unique identifier of the transaction.
        createdByUserType:
          type: string
          enum:
            - user
            - system
          description: Indicates whether the action was created by a human-user or by a
            system-user.
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
          description: Timestamp indicating when the action was created.
        createdBy:
          type: string
          description: Identifier of the user who created the action.
        createdByRole:
          description: Role of the user who created the action.
          type: string
        createdBySignature:
          description: Reference to the signature of the user who created the action.
          anyOf:
            - type: string
              description: A relative path within the S3 bucket, never starting with /. e.g.
                document-id.jpg or directory/document-id.jpg. The document
                service constructs the full /bucket/path internally.
            - type: "null"
        createdAtLocation:
          description: Reference to the location of the user who created the action.
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        declaration:
          type: object
          propertyNames:
            type: string
          additionalProperties:
            description: Value that matches exactly one of the possible schema types
              (TextValue, DateValue, DateRangeFieldValue). The best matching
              schema is chosen by priority.
          description: Declaration data defined by the ActionConfig. Supports partial
            updates.
        annotation:
          anyOf:
            - type: object
              propertyNames:
                type: string
              additionalProperties:
                description: Value that matches exactly one of the possible schema types
                  (TextValue, DateValue, DateRangeFieldValue). The best matching
                  schema is chosen by priority.
              description: Record of field-level changes made by an action. Supports partial
                updates and nullable values.
            - type: "null"
          description: Action-specific metadata used to annotate the event.
        status:
          type: string
          enum:
            - Requested
            - Accepted
            - Rejected
          description: Current status of the action. Actions may be validated
            asynchronously by third-party integrations.
        originalActionId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
          description: Reference to the original action asynchronously accepted or
            rejected by a third-party integration.
        type:
          type: string
          const: PRINT_CERTIFICATE
        content:
          anyOf:
            - type: object
              properties:
                templateId:
                  type: string
              additionalProperties: false
            - type: "null"
      required:
        - id
        - transactionId
        - createdByUserType
        - createdAt
        - createdBy
        - declaration
        - status
        - type
      additionalProperties: false
    ReadAction:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          description: Unique identifier of the action.
        transactionId:
          type: string
          description: Unique identifier of the transaction.
        createdByUserType:
          type: string
          enum:
            - user
            - system
          description: Indicates whether the action was created by a human-user or by a
            system-user.
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
          description: Timestamp indicating when the action was created.
        createdBy:
          type: string
          description: Identifier of the user who created the action.
        createdByRole:
          description: Role of the user who created the action.
          type: string
        createdBySignature:
          description: Reference to the signature of the user who created the action.
          anyOf:
            - type: string
              description: A relative path within the S3 bucket, never starting with /. e.g.
                document-id.jpg or directory/document-id.jpg. The document
                service constructs the full /bucket/path internally.
            - type: "null"
        createdAtLocation:
          description: Reference to the location of the user who created the action.
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        declaration:
          type: object
          propertyNames:
            type: string
          additionalProperties:
            description: Value that matches exactly one of the possible schema types
              (TextValue, DateValue, DateRangeFieldValue). The best matching
              schema is chosen by priority.
          description: Declaration data defined by the ActionConfig. Supports partial
            updates.
        annotation:
          anyOf:
            - type: object
              propertyNames:
                type: string
              additionalProperties:
                description: Value that matches exactly one of the possible schema types
                  (TextValue, DateValue, DateRangeFieldValue). The best matching
                  schema is chosen by priority.
              description: Record of field-level changes made by an action. Supports partial
                updates and nullable values.
            - type: "null"
          description: Action-specific metadata used to annotate the event.
        status:
          type: string
          enum:
            - Requested
            - Accepted
            - Rejected
          description: Current status of the action. Actions may be validated
            asynchronously by third-party integrations.
        originalActionId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
          description: Reference to the original action asynchronously accepted or
            rejected by a third-party integration.
        type:
          type: string
          const: READ
      required:
        - id
        - transactionId
        - createdByUserType
        - createdAt
        - createdBy
        - declaration
        - status
        - type
      additionalProperties: false
    EditAction:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          description: Unique identifier of the action.
        transactionId:
          type: string
          description: Unique identifier of the transaction.
        createdByUserType:
          type: string
          enum:
            - user
            - system
          description: Indicates whether the action was created by a human-user or by a
            system-user.
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
          description: Timestamp indicating when the action was created.
        createdBy:
          type: string
          description: Identifier of the user who created the action.
        createdByRole:
          description: Role of the user who created the action.
          type: string
        createdBySignature:
          description: Reference to the signature of the user who created the action.
          anyOf:
            - type: string
              description: A relative path within the S3 bucket, never starting with /. e.g.
                document-id.jpg or directory/document-id.jpg. The document
                service constructs the full /bucket/path internally.
            - type: "null"
        createdAtLocation:
          description: Reference to the location of the user who created the action.
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        declaration:
          type: object
          propertyNames:
            type: string
          additionalProperties:
            description: Value that matches exactly one of the possible schema types
              (TextValue, DateValue, DateRangeFieldValue). The best matching
              schema is chosen by priority.
          description: Declaration data defined by the ActionConfig. Supports partial
            updates.
        annotation:
          anyOf:
            - type: object
              propertyNames:
                type: string
              additionalProperties:
                description: Value that matches exactly one of the possible schema types
                  (TextValue, DateValue, DateRangeFieldValue). The best matching
                  schema is chosen by priority.
              description: Record of field-level changes made by an action. Supports partial
                updates and nullable values.
            - type: "null"
          description: Action-specific metadata used to annotate the event.
        status:
          type: string
          enum:
            - Requested
            - Accepted
            - Rejected
          description: Current status of the action. Actions may be validated
            asynchronously by third-party integrations.
        originalActionId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
          description: Reference to the original action asynchronously accepted or
            rejected by a third-party integration.
        type:
          type: string
          const: EDIT
        content:
          type: object
          properties:
            comment:
              type: string
              description: Comment for the edit action.
          additionalProperties: false
      required:
        - id
        - transactionId
        - createdByUserType
        - createdAt
        - createdBy
        - declaration
        - status
        - type
        - content
      additionalProperties: false
    CustomAction:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          description: Unique identifier of the action.
        transactionId:
          type: string
          description: Unique identifier of the transaction.
        createdByUserType:
          type: string
          enum:
            - user
            - system
          description: Indicates whether the action was created by a human-user or by a
            system-user.
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
          description: Timestamp indicating when the action was created.
        createdBy:
          type: string
          description: Identifier of the user who created the action.
        createdByRole:
          description: Role of the user who created the action.
          type: string
        createdBySignature:
          description: Reference to the signature of the user who created the action.
          anyOf:
            - type: string
              description: A relative path within the S3 bucket, never starting with /. e.g.
                document-id.jpg or directory/document-id.jpg. The document
                service constructs the full /bucket/path internally.
            - type: "null"
        createdAtLocation:
          description: Reference to the location of the user who created the action.
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        declaration:
          type: object
          propertyNames:
            type: string
          additionalProperties:
            description: Value that matches exactly one of the possible schema types
              (TextValue, DateValue, DateRangeFieldValue). The best matching
              schema is chosen by priority.
          description: Declaration data defined by the ActionConfig. Supports partial
            updates.
        annotation:
          anyOf:
            - type: object
              propertyNames:
                type: string
              additionalProperties:
                description: Value that matches exactly one of the possible schema types
                  (TextValue, DateValue, DateRangeFieldValue). The best matching
                  schema is chosen by priority.
              description: Record of field-level changes made by an action. Supports partial
                updates and nullable values.
            - type: "null"
          description: Action-specific metadata used to annotate the event.
        status:
          type: string
          enum:
            - Requested
            - Accepted
            - Rejected
          description: Current status of the action. Actions may be validated
            asynchronously by third-party integrations.
        originalActionId:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
          description: Reference to the original action asynchronously accepted or
            rejected by a third-party integration.
        type:
          type: string
          const: CUSTOM
        customActionType:
          type: string
      required:
        - id
        - transactionId
        - createdByUserType
        - createdAt
        - createdBy
        - declaration
        - status
        - type
        - customActionType
      additionalProperties: false
    EventIndex:
      type: object
      properties:
        id:
          type: string
          format: uuid
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        type:
          type: string
          description: The type of event, such as birth, death, or marriage.
        status:
          type: string
          enum:
            - CREATED
            - NOTIFIED
            - DECLARED
            - REGISTERED
            - ARCHIVED
        legalStatuses:
          type: object
          properties:
            DECLARED:
              anyOf:
                - type: object
                  properties:
                    createdAt:
                      type: string
                      format: date-time
                      pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                      description: The timestamp when the action request was created.
                    createdBy:
                      type: string
                      description: ID of the user who created the action request.
                    createdAtLocation:
                      description: Location of the user who created the action request.
                      anyOf:
                        - type: string
                          format: uuid
                          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                        - type: "null"
                    createdByUserType:
                      description: Whether the user is a normal user or a system.
                      anyOf:
                        - type: string
                          enum:
                            - user
                            - system
                        - type: "null"
                    acceptedAt:
                      type: string
                      format: date-time
                      pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                      description: Timestamp when the action request was accepted.
                    createdByRole:
                      description: Role of the user at the time of action request creation.
                      type: string
                  required:
                    - createdAt
                    - createdBy
                    - acceptedAt
                  additionalProperties: false
                - type: "null"
            REGISTERED:
              anyOf:
                - type: object
                  properties:
                    createdAt:
                      type: string
                      format: date-time
                      pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                      description: The timestamp when the action request was created.
                    createdBy:
                      type: string
                      description: ID of the user who created the action request.
                    createdAtLocation:
                      description: Location of the user who created the action request.
                      anyOf:
                        - type: string
                          format: uuid
                          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                        - type: "null"
                    createdByUserType:
                      description: Whether the user is a normal user or a system.
                      anyOf:
                        - type: string
                          enum:
                            - user
                            - system
                        - type: "null"
                    acceptedAt:
                      type: string
                      format: date-time
                      pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                      description: Timestamp when the action request was accepted.
                    createdByRole:
                      description: Role of the user at the time of action request creation.
                      type: string
                    registrationNumber:
                      type: string
                      description: Registration number of the event. Always present for accepted
                        registrations.
                  required:
                    - createdAt
                    - createdBy
                    - acceptedAt
                    - registrationNumber
                  additionalProperties: false
                - type: "null"
          additionalProperties: false
          description: Metadata related to the legal registration of the event, such as
            who registered it and when.
        createdAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
          description: The timestamp when the event was first created and saved.
        dateOfEvent:
          anyOf:
            - type: string
              format: date
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
            - type: "null"
        placeOfEvent:
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        createdBy:
          type: string
          description: ID of the user who created the event.
        createdByUserType:
          description: Whether the user is a normal user or a system.
          anyOf:
            - type: string
              enum:
                - user
                - system
            - type: "null"
        updatedByUserRole:
          description: Role of the user who last changed the status.
          anyOf:
            - type: string
            - type: "null"
        createdAtLocation:
          description: Location of the user who created the event.
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        updatedAtLocation:
          description: Location of the user who last changed the status.
          anyOf:
            - type: string
              format: uuid
              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - type: "null"
        updatedAt:
          type: string
          format: date-time
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
          description: Timestamp of the most recent *accepted* status change. Possibly 3rd
            party update, if action is validation asynchronously.
        assignedTo:
          description: ID of the user currently assigned to the event.
          anyOf:
            - type: string
            - type: "null"
        updatedBy:
          description: ID of the user who last changed the status.
          anyOf:
            - type: string
            - type: "null"
        trackingId:
          type: string
          description: System-generated tracking ID used by informants or registrars to
            look up the event.
        potentialDuplicates:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              trackingId:
                type: string
            required:
              - id
              - trackingId
            additionalProperties: false
          description: List of event IDs and their tracking IDs that this event could be a
            duplicate of.
        flags:
          type: array
          items:
            anyOf:
              - anyOf:
                  - type: string
                    pattern: ^(delete|create|notify|declare|register|edit|duplicate_detected|reject|mark_as_duplicate|mark_as_not_duplicate|archive|print_certificate|request_correction|reject_correction|approve_correction|read|assign|unassign|custom):(requested|accepted|rejected)$
                  - type: string
                    enum:
                      - incomplete
                      - rejected
                      - correction-requested
                      - potential-duplicate
                      - edit-in-progress
              - type: string
                description: Custom flag identifier defined by the country config.
        declaration:
          type: object
          propertyNames:
            type: string
          additionalProperties:
            anyOf:
              - anyOf:
                  - oneOf:
                      - type: object
                        properties:
                          country:
                            type: string
                          streetLevelDetails:
                            type: object
                            propertyNames:
                              type: string
                            additionalProperties:
                              type: string
                          addressType:
                            type: string
                            const: DOMESTIC
                          administrativeArea:
                            type: string
                            format: uuid
                            pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                        required:
                          - country
                          - addressType
                          - administrativeArea
                        additionalProperties: false
                      - type: object
                        properties:
                          country:
                            type: string
                          streetLevelDetails:
                            type: object
                            propertyNames:
                              type: string
                            additionalProperties:
                              type: string
                          addressType:
                            type: string
                            const: INTERNATIONAL
                        required:
                          - country
                          - addressType
                        additionalProperties: false
                    type: object
                  - type: string
                  - type: string
                    format: date
                    pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                    description: Date in the format YYYY-MM-DD
                  - type: object
                    properties:
                      age:
                        type: number
                      asOfDateRef:
                        type: string
                    required:
                      - age
                      - asOfDateRef
                    additionalProperties: false
                  - type: string
                    pattern: ^([01][0-9]|2[0-3]):[0-5][0-9]$
                  - anyOf:
                      - type: object
                        properties:
                          start:
                            type: string
                            format: date
                            pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                            description: Date in the format YYYY-MM-DD
                          end:
                            type: string
                            format: date
                            pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                            description: Date in the format YYYY-MM-DD
                        required:
                          - start
                          - end
                        additionalProperties: false
                      - type: string
                        format: date
                        pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                        description: Date in the format YYYY-MM-DD
                    description: Date range with start and end dates in the format YYYY-MM-DD.
                      Inclusive start, exclusive end.
                  - type: string
                    enum:
                      - last7Days
                      - last30Days
                      - last90Days
                      - last365Days
                  - type: boolean
                  - type: number
                  - type: object
                    properties:
                      path:
                        type: string
                        description: A relative path within the S3 bucket, never starting with /. e.g.
                          document-id.jpg or directory/document-id.jpg. The
                          document service constructs the full /bucket/path
                          internally.
                      originalFilename:
                        type: string
                      type:
                        type: string
                    required:
                      - path
                      - originalFilename
                      - type
                    additionalProperties: false
                  - type: array
                    items:
                      type: object
                      properties:
                        path:
                          type: string
                          description: A relative path within the S3 bucket, never starting with /. e.g.
                            document-id.jpg or directory/document-id.jpg. The
                            document service constructs the full /bucket/path
                            internally.
                        originalFilename:
                          type: string
                        type:
                          type: string
                        option:
                          type: string
                      required:
                        - path
                        - originalFilename
                        - type
                        - option
                      additionalProperties: false
                  - type: object
                    properties:
                      firstname:
                        type: string
                      surname:
                        type: string
                      middlename:
                        type: string
                    required:
                      - firstname
                      - surname
                    additionalProperties: false
                  - anyOf:
                      - anyOf:
                          - type: object
                            properties:
                              firstname:
                                anyOf:
                                  - type: string
                                  - type: "null"
                              surname:
                                anyOf:
                                  - type: string
                                  - type: "null"
                              middlename:
                                anyOf:
                                  - type: string
                                  - type: "null"
                            additionalProperties: false
                          - type: "null"
                      - not: {}
                  - type: number
                  - type: object
                    properties:
                      loading:
                        type: boolean
                      error:
                        anyOf:
                          - type: object
                            properties:
                              statusCode:
                                type: number
                              message:
                                type: string
                            required:
                              - statusCode
                              - message
                            additionalProperties: false
                          - type: "null"
                      data: {}
                    required:
                      - loading
                      - data
                    additionalProperties: false
                  - type: string
                    enum:
                      - verified
                      - authenticated
                      - failed
                      - pending
                  - anyOf:
                      - type: object
                        properties:
                          data:
                            type: object
                            propertyNames:
                              type: string
                            additionalProperties:
                              type: string
                          updatedAt:
                            type: string
                            format: date-time
                            pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                        required:
                          - data
                          - updatedAt
                        additionalProperties: false
                      - type: "null"
                  - type: object
                    properties:
                      data: {}
                    required:
                      - data
                    additionalProperties: false
                  - type: object
                    properties:
                      data: {}
                    required:
                      - data
                    additionalProperties: false
                  - type: object
                    properties:
                      numericValue:
                        type: number
                      unit:
                        type: string
                    required:
                      - numericValue
                      - unit
                    additionalProperties: false
                  - type: object
                    properties:
                      numericValue:
                        type: number
                      unit:
                        type: string
                    additionalProperties: false
                  - {}
                  - type: object
                    properties:
                      label:
                        type: string
                      value:
                        type: string
                    required:
                      - label
                      - value
                    additionalProperties: false
                  - anyOf:
                      - type: object
                        properties:
                          label:
                            type: string
                          value:
                            type: string
                        required:
                          - label
                          - value
                        additionalProperties: false
                      - type: "null"
              - anyOf:
                  - type: object
                    properties:
                      data:
                        type: object
                        propertyNames:
                          type: string
                        additionalProperties:
                          anyOf:
                            - oneOf:
                                - type: object
                                  properties:
                                    country:
                                      type: string
                                    streetLevelDetails:
                                      type: object
                                      propertyNames:
                                        type: string
                                      additionalProperties:
                                        type: string
                                    addressType:
                                      type: string
                                      const: DOMESTIC
                                    administrativeArea:
                                      type: string
                                      format: uuid
                                      pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                                  required:
                                    - country
                                    - addressType
                                    - administrativeArea
                                  additionalProperties: false
                                - type: object
                                  properties:
                                    country:
                                      type: string
                                    streetLevelDetails:
                                      type: object
                                      propertyNames:
                                        type: string
                                      additionalProperties:
                                        type: string
                                    addressType:
                                      type: string
                                      const: INTERNATIONAL
                                  required:
                                    - country
                                    - addressType
                                  additionalProperties: false
                              type: object
                            - type: string
                            - type: string
                              format: date
                              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                              description: Date in the format YYYY-MM-DD
                            - type: object
                              properties:
                                age:
                                  type: number
                                asOfDateRef:
                                  type: string
                              required:
                                - age
                                - asOfDateRef
                              additionalProperties: false
                            - type: string
                              pattern: ^([01][0-9]|2[0-3]):[0-5][0-9]$
                            - anyOf:
                                - type: object
                                  properties:
                                    start:
                                      type: string
                                      format: date
                                      pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                                      description: Date in the format YYYY-MM-DD
                                    end:
                                      type: string
                                      format: date
                                      pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                                      description: Date in the format YYYY-MM-DD
                                  required:
                                    - start
                                    - end
                                  additionalProperties: false
                                - type: string
                                  format: date
                                  pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                                  description: Date in the format YYYY-MM-DD
                              description: Date range with start and end dates in the format YYYY-MM-DD.
                                Inclusive start, exclusive end.
                            - type: string
                              enum:
                                - last7Days
                                - last30Days
                                - last90Days
                                - last365Days
                            - type: boolean
                            - type: number
                            - type: object
                              properties:
                                path:
                                  type: string
                                  description: A relative path within the S3 bucket, never starting with /. e.g.
                                    document-id.jpg or
                                    directory/document-id.jpg. The document
                                    service constructs the full /bucket/path
                                    internally.
                                originalFilename:
                                  type: string
                                type:
                                  type: string
                              required:
                                - path
                                - originalFilename
                                - type
                              additionalProperties: false
                            - type: array
                              items:
                                type: object
                                properties:
                                  path:
                                    type: string
                                    description: A relative path within the S3 bucket, never starting with /. e.g.
                                      document-id.jpg or
                                      directory/document-id.jpg. The document
                                      service constructs the full /bucket/path
                                      internally.
                                  originalFilename:
                                    type: string
                                  type:
                                    type: string
                                  option:
                                    type: string
                                required:
                                  - path
                                  - originalFilename
                                  - type
                                  - option
                                additionalProperties: false
                            - type: object
                              properties:
                                firstname:
                                  type: string
                                surname:
                                  type: string
                                middlename:
                                  type: string
                              required:
                                - firstname
                                - surname
                              additionalProperties: false
                            - anyOf:
                                - anyOf:
                                    - type: object
                                      properties:
                                        firstname:
                                          anyOf:
                                            - type: string
                                            - type: "null"
                                        surname:
                                          anyOf:
                                            - type: string
                                            - type: "null"
                                        middlename:
                                          anyOf:
                                            - type: string
                                            - type: "null"
                                      additionalProperties: false
                                    - type: "null"
                                - not: {}
                            - type: number
                            - type: object
                              properties:
                                loading:
                                  type: boolean
                                error:
                                  anyOf:
                                    - type: object
                                      properties:
                                        statusCode:
                                          type: number
                                        message:
                                          type: string
                                      required:
                                        - statusCode
                                        - message
                                      additionalProperties: false
                                    - type: "null"
                                data: {}
                              required:
                                - loading
                                - data
                              additionalProperties: false
                            - type: string
                              enum:
                                - verified
                                - authenticated
                                - failed
                                - pending
                            - anyOf:
                                - type: object
                                  properties:
                                    data:
                                      type: object
                                      propertyNames:
                                        type: string
                                      additionalProperties:
                                        type: string
                                    updatedAt:
                                      type: string
                                      format: date-time
                                      pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                                  required:
                                    - data
                                    - updatedAt
                                  additionalProperties: false
                                - type: "null"
                            - type: object
                              properties:
                                data: {}
                              required:
                                - data
                              additionalProperties: false
                            - type: object
                              properties:
                                data: {}
                              required:
                                - data
                              additionalProperties: false
                            - type: object
                              properties:
                                numericValue:
                                  type: number
                                unit:
                                  type: string
                              required:
                                - numericValue
                                - unit
                              additionalProperties: false
                            - type: object
                              properties:
                                numericValue:
                                  type: number
                                unit:
                                  type: string
                              additionalProperties: false
                            - {}
                            - type: object
                              properties:
                                label:
                                  type: string
                                value:
                                  type: string
                              required:
                                - label
                                - value
                              additionalProperties: false
                            - anyOf:
                                - type: object
                                  properties:
                                    label:
                                      type: string
                                    value:
                                      type: string
                                  required:
                                    - label
                                    - value
                                  additionalProperties: false
                                - type: "null"
                    required:
                      - data
                    additionalProperties: false
                  - type: "null"
              - type: object
                propertyNames:
                  type: string
                additionalProperties:
                  anyOf:
                    - oneOf:
                        - type: object
                          properties:
                            country:
                              type: string
                            streetLevelDetails:
                              type: object
                              propertyNames:
                                type: string
                              additionalProperties:
                                type: string
                            addressType:
                              type: string
                              const: DOMESTIC
                            administrativeArea:
                              type: string
                              format: uuid
                              pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                          required:
                            - country
                            - addressType
                            - administrativeArea
                          additionalProperties: false
                        - type: object
                          properties:
                            country:
                              type: string
                            streetLevelDetails:
                              type: object
                              propertyNames:
                                type: string
                              additionalProperties:
                                type: string
                            addressType:
                              type: string
                              const: INTERNATIONAL
                          required:
                            - country
                            - addressType
                          additionalProperties: false
                      type: object
                    - type: string
                    - type: string
                      format: date
                      pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                      description: Date in the format YYYY-MM-DD
                    - type: object
                      properties:
                        age:
                          type: number
                        asOfDateRef:
                          type: string
                      required:
                        - age
                        - asOfDateRef
                      additionalProperties: false
                    - type: string
                      pattern: ^([01][0-9]|2[0-3]):[0-5][0-9]$
                    - anyOf:
                        - type: object
                          properties:
                            start:
                              type: string
                              format: date
                              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                              description: Date in the format YYYY-MM-DD
                            end:
                              type: string
                              format: date
                              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                              description: Date in the format YYYY-MM-DD
                          required:
                            - start
                            - end
                          additionalProperties: false
                        - type: string
                          format: date
                          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                          description: Date in the format YYYY-MM-DD
                      description: Date range with start and end dates in the format YYYY-MM-DD.
                        Inclusive start, exclusive end.
                    - type: string
                      enum:
                        - last7Days
                        - last30Days
                        - last90Days
                        - last365Days
                    - type: boolean
                    - type: number
                    - type: object
                      properties:
                        path:
                          type: string
                          description: A relative path within the S3 bucket, never starting with /. e.g.
                            document-id.jpg or directory/document-id.jpg. The
                            document service constructs the full /bucket/path
                            internally.
                        originalFilename:
                          type: string
                        type:
                          type: string
                      required:
                        - path
                        - originalFilename
                        - type
                      additionalProperties: false
                    - type: array
                      items:
                        type: object
                        properties:
                          path:
                            type: string
                            description: A relative path within the S3 bucket, never starting with /. e.g.
                              document-id.jpg or directory/document-id.jpg. The
                              document service constructs the full /bucket/path
                              internally.
                          originalFilename:
                            type: string
                          type:
                            type: string
                          option:
                            type: string
                        required:
                          - path
                          - originalFilename
                          - type
                          - option
                        additionalProperties: false
                    - type: object
                      properties:
                        firstname:
                          type: string
                        surname:
                          type: string
                        middlename:
                          type: string
                      required:
                        - firstname
                        - surname
                      additionalProperties: false
                    - anyOf:
                        - anyOf:
                            - type: object
                              properties:
                                firstname:
                                  anyOf:
                                    - type: string
                                    - type: "null"
                                surname:
                                  anyOf:
                                    - type: string
                                    - type: "null"
                                middlename:
                                  anyOf:
                                    - type: string
                                    - type: "null"
                              additionalProperties: false
                            - type: "null"
                        - not: {}
                    - type: number
                    - type: object
                      properties:
                        loading:
                          type: boolean
                        error:
                          anyOf:
                            - type: object
                              properties:
                                statusCode:
                                  type: number
                                message:
                                  type: string
                              required:
                                - statusCode
                                - message
                              additionalProperties: false
                            - type: "null"
                        data: {}
                      required:
                        - loading
                        - data
                      additionalProperties: false
                    - type: string
                      enum:
                        - verified
                        - authenticated
                        - failed
                        - pending
                    - anyOf:
                        - type: object
                          properties:
                            data:
                              type: object
                              propertyNames:
                                type: string
                              additionalProperties:
                                type: string
                            updatedAt:
                              type: string
                              format: date-time
                              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                          required:
                            - data
                            - updatedAt
                          additionalProperties: false
                        - type: "null"
                    - type: object
                      properties:
                        data: {}
                      required:
                        - data
                      additionalProperties: false
                    - type: object
                      properties:
                        data: {}
                      required:
                        - data
                      additionalProperties: false
                    - type: object
                      properties:
                        numericValue:
                          type: number
                        unit:
                          type: string
                      required:
                        - numericValue
                        - unit
                      additionalProperties: false
                    - type: object
                      properties:
                        numericValue:
                          type: number
                        unit:
                          type: string
                      additionalProperties: false
                    - {}
                    - type: object
                      properties:
                        label:
                          type: string
                        value:
                          type: string
                      required:
                        - label
                        - value
                      additionalProperties: false
                    - anyOf:
                        - type: object
                          properties:
                            label:
                              type: string
                            value:
                              type: string
                          required:
                            - label
                            - value
                          additionalProperties: false
                        - type: "null"
          description: Aggregate representation of event data after all actions have been
            applied, with all updates consolidated and null values removed.
      required:
        - id
        - type
        - status
        - legalStatuses
        - createdAt
        - createdBy
        - updatedAt
        - trackingId
        - potentialDuplicates
        - flags
        - declaration
      additionalProperties: false
    TranslationConfigOutput:
      type: object
      properties:
        id:
          type: string
          description: The identifier of the translation referred in translation CSV files
        defaultMessage:
          type: string
          description: Default translation message
        description:
          type: string
          description: Describe the translation for a translator to be able to identify it.
      required:
        - id
        - defaultMessage
        - description
      additionalProperties: false
      description: Translation configuration
    QueryTypeOutput:
      type: object
      properties:
        type:
          anyOf:
            - type: string
              const: and
            - type: string
              const: or
          default: and
        clauses:
          minItems: 1
          type: array
          items:
            anyOf:
              - $ref: "#/components/schemas/QueryExpressionOutput"
              - $ref: "#/components/schemas/QueryTypeOutput"
          default:
            - eventType: tennis-club-membership
              status:
                type: anyOf
                terms:
                  - CREATED
                  - NOTIFIED
                  - DECLARED
                  - REGISTERED
                  - ARCHIVED
              updatedAt:
                type: range
                gte: 2025-05-22
                lte: 2025-05-29
              data: {}
      required:
        - type
        - clauses
      additionalProperties: false
    QueryExpressionOutput:
      type: object
      properties:
        id:
          type: string
        eventType:
          type: string
        status:
          anyOf:
            - $ref: "#/components/schemas/AnyOfStatusOutput"
            - $ref: "#/components/schemas/ExactStatusOutput"
        createdAt:
          $ref: "#/components/schemas/DateConditionOutput"
        updatedAt:
          $ref: "#/components/schemas/DateConditionOutput"
        legalStatuses.DECLARED.createdAtLocation:
          anyOf:
            - $ref: "#/components/schemas/WithinOutput"
            - type: "null"
        legalStatuses.DECLARED.createdByRole:
          $ref: "#/components/schemas/AnyOfOutput"
        legalStatuses.REGISTERED.acceptedAt:
          $ref: "#/components/schemas/DateConditionOutput"
        legalStatuses.REGISTERED.createdAtLocation:
          anyOf:
            - $ref: "#/components/schemas/WithinOutput"
            - type: "null"
        legalStatuses.REGISTERED.createdByRole:
          $ref: "#/components/schemas/AnyOfOutput"
        legalStatuses.REGISTERED.registrationNumber:
          $ref: "#/components/schemas/ExactOutput"
        createdAtLocation:
          anyOf:
            - $ref: "#/components/schemas/WithinOutput"
            - $ref: "#/components/schemas/ExactOutput"
        updatedAtLocation:
          anyOf:
            - $ref: "#/components/schemas/WithinOutput"
            - $ref: "#/components/schemas/ExactOutput"
        assignedTo:
          $ref: "#/components/schemas/ExactOutput"
        createdByUserType:
          $ref: "#/components/schemas/ExactUserTypeOutput"
        updatedByUserRole:
          $ref: "#/components/schemas/ExactOutput"
        createdBy:
          $ref: "#/components/schemas/ExactOutput"
        updatedBy:
          $ref: "#/components/schemas/ExactOutput"
        trackingId:
          $ref: "#/components/schemas/ExactOutput"
        flags:
          $ref: "#/components/schemas/ContainsFlagsOutput"
        data:
          $ref: "#/components/schemas/QueryInputOutput"
      additionalProperties: false
    AnyOfStatusOutput:
      type: object
      properties:
        type:
          type: string
          const: anyOf
        terms:
          type: array
          items:
            type: string
            enum:
              - CREATED
              - NOTIFIED
              - DECLARED
              - REGISTERED
              - ARCHIVED
      required:
        - type
        - terms
      additionalProperties: false
    ExactStatusOutput:
      type: object
      properties:
        type:
          type: string
          const: exact
        term:
          type: string
          enum:
            - CREATED
            - NOTIFIED
            - DECLARED
            - REGISTERED
            - ARCHIVED
      required:
        - type
        - term
      additionalProperties: false
    DateConditionOutput:
      anyOf:
        - $ref: "#/components/schemas/ExactDateOutput"
        - $ref: "#/components/schemas/RangeDateOutput"
        - $ref: "#/components/schemas/TimePeriodOutput"
    ExactDateOutput:
      type: object
      properties:
        type:
          type: string
          const: exact
        term:
          anyOf:
            - type: string
              format: date
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
      required:
        - type
        - term
      additionalProperties: false
    RangeDateOutput:
      type: object
      properties:
        type:
          type: string
          const: range
        gte:
          anyOf:
            - type: string
              format: date
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
        lte:
          anyOf:
            - type: string
              format: date
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
            - type: string
              format: date-time
              pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
      required:
        - type
        - gte
        - lte
      additionalProperties: false
    TimePeriodOutput:
      type: object
      properties:
        type:
          type: string
          const: timePeriod
        term:
          type: string
          enum:
            - last7Days
            - last30Days
            - last90Days
            - last365Days
      required:
        - type
        - term
      additionalProperties: false
    WithinOutput:
      type: object
      properties:
        type:
          type: string
          const: within
        location:
          type: string
      required:
        - type
        - location
      additionalProperties: false
    AnyOfOutput:
      type: object
      properties:
        type:
          type: string
          const: anyOf
        terms:
          type: array
          items:
            type: string
      required:
        - type
        - terms
      additionalProperties: false
    ExactOutput:
      type: object
      properties:
        type:
          type: string
          const: exact
        term:
          type: string
      required:
        - type
        - term
      additionalProperties: false
    ExactUserTypeOutput:
      type: object
      properties:
        type:
          type: string
          const: exact
        term:
          type: string
          enum:
            - user
            - system
      required:
        - type
        - term
      additionalProperties: false
    ContainsFlagsOutput:
      type: object
      properties:
        anyOf:
          type: array
          items:
            anyOf:
              - anyOf:
                  - type: string
                    pattern: ^(delete|create|notify|declare|register|edit|duplicate_detected|reject|mark_as_duplicate|mark_as_not_duplicate|archive|print_certificate|request_correction|reject_correction|approve_correction|read|assign|unassign|custom):(requested|accepted|rejected)$
                  - type: string
                    enum:
                      - incomplete
                      - rejected
                      - correction-requested
                      - potential-duplicate
                      - edit-in-progress
              - type: string
                description: Custom flag identifier defined by the country config.
        noneOf:
          type: array
          items:
            anyOf:
              - anyOf:
                  - type: string
                    pattern: ^(delete|create|notify|declare|register|edit|duplicate_detected|reject|mark_as_duplicate|mark_as_not_duplicate|archive|print_certificate|request_correction|reject_correction|approve_correction|read|assign|unassign|custom):(requested|accepted|rejected)$
                  - type: string
                    enum:
                      - incomplete
                      - rejected
                      - correction-requested
                      - potential-duplicate
                      - edit-in-progress
              - type: string
                description: Custom flag identifier defined by the country config.
      additionalProperties: false
    QueryInputOutput:
      anyOf:
        - oneOf:
            - $ref: "#/components/schemas/FuzzyOutput"
            - $ref: "#/components/schemas/ExactOutput"
            - $ref: "#/components/schemas/RangeOutput"
            - $ref: "#/components/schemas/WithinOutput"
            - $ref: "#/components/schemas/AnyOfOutput"
          type: object
          discriminator:
            propertyName: type
            mapping:
              fuzzy: "#/components/schemas/FuzzyOutput"
              exact: "#/components/schemas/ExactOutput"
              range: "#/components/schemas/RangeOutput"
              within: "#/components/schemas/WithinOutput"
              anyOf: "#/components/schemas/AnyOfOutput"
        - type: object
          propertyNames:
            type: string
          additionalProperties:
            $ref: "#/components/schemas/QueryInputOutput"
    FuzzyOutput:
      type: object
      properties:
        type:
          type: string
          const: fuzzy
        term:
          type: string
      required:
        - type
        - term
      additionalProperties: false
    RangeOutput:
      type: object
      properties:
        type:
          type: string
          const: range
        gte:
          type: string
        lte:
          type: string
      required:
        - type
        - gte
        - lte
      additionalProperties: false
    WorkqueueColumnOutput:
      type: object
      properties:
        label:
          $ref: "#/components/schemas/TranslationConfigOutput"
        value:
          type: object
          properties:
            $event:
              type: string
              enum:
                - id
                - type
                - status
                - createdAt
                - dateOfEvent
                - placeOfEvent
                - createdBy
                - createdByUserType
                - updatedByUserRole
                - createdAtLocation
                - updatedAtLocation
                - updatedAt
                - assignedTo
                - updatedBy
                - trackingId
                - legalStatuses
                - flags
                - title
                - outbox
          required:
            - $event
          additionalProperties: false
      required:
        - label
        - value
      additionalProperties: false
      description: Configuration for a single workqueue column. The value references
        an event metadata key (e.g. `dateOfEvent`, `status`, `trackingId`).
    WorkqueueConfig:
      type: object
      properties:
        slug:
          type: string
          description: Determines the url of the workqueue.
        name:
          description: Title of the workflow (both in navigation and on the page)
          $ref: "#/components/schemas/TranslationConfigOutput"
        query:
          oneOf:
            - type: object
              properties:
                type:
                  type: string
                  const: and
                clauses:
                  type: array
                  items:
                    type: object
                    properties:
                      eventType:
                        type: string
                      status:
                        anyOf:
                          - $ref: "#/components/schemas/AnyOfStatusOutput"
                          - $ref: "#/components/schemas/ExactStatusOutput"
                      createdAt:
                        $ref: "#/components/schemas/DateConditionOutput"
                      updatedAt:
                        $ref: "#/components/schemas/DateConditionOutput"
                      legalStatuses.DECLARED.createdAtLocation:
                        type: object
                        properties:
                          type:
                            type: string
                            const: within
                          location:
                            anyOf:
                              - type: string
                              - type: object
                                properties:
                                  $userField:
                                    type: string
                                    enum:
                                      - id
                                      - name
                                      - role
                                      - fullHonorificName
                                      - device
                                      - firstname
                                      - middlename
                                      - surname
                                      - signature
                                      - avatar
                                      - primaryOfficeId
                                      - administrativeAreaId
                                  $location:
                                    type: string
                                required:
                                  - $userField
                                additionalProperties: false
                        required:
                          - type
                          - location
                        additionalProperties: false
                      legalStatuses.DECLARED.createdByRole:
                        $ref: "#/components/schemas/AnyOfOutput"
                      legalStatuses.REGISTERED.createdAt:
                        $ref: "#/components/schemas/DateConditionOutput"
                      legalStatuses.REGISTERED.createdAtLocation:
                        type: object
                        properties:
                          type:
                            type: string
                            const: within
                          location:
                            anyOf:
                              - type: string
                              - type: object
                                properties:
                                  $userField:
                                    type: string
                                    enum:
                                      - id
                                      - name
                                      - role
                                      - fullHonorificName
                                      - device
                                      - firstname
                                      - middlename
                                      - surname
                                      - signature
                                      - avatar
                                      - primaryOfficeId
                                      - administrativeAreaId
                                  $location:
                                    type: string
                                required:
                                  - $userField
                                additionalProperties: false
                        required:
                          - type
                          - location
                        additionalProperties: false
                      legalStatuses.REGISTERED.createdByRole:
                        $ref: "#/components/schemas/AnyOfOutput"
                      legalStatuses.REGISTERED.registrationNumber:
                        $ref: "#/components/schemas/ExactOutput"
                      createdAtLocation:
                        anyOf:
                          - type: object
                            properties:
                              type:
                                type: string
                                const: within
                              location:
                                anyOf:
                                  - type: string
                                  - type: object
                                    properties:
                                      $userField:
                                        type: string
                                        enum:
                                          - id
                                          - name
                                          - role
                                          - fullHonorificName
                                          - device
                                          - firstname
                                          - middlename
                                          - surname
                                          - signature
                                          - avatar
                                          - primaryOfficeId
                                          - administrativeAreaId
                                      $location:
                                        type: string
                                    required:
                                      - $userField
                                    additionalProperties: false
                            required:
                              - type
                              - location
                            additionalProperties: false
                          - type: object
                            properties:
                              type:
                                type: string
                                const: exact
                              term:
                                anyOf:
                                  - type: string
                                  - type: object
                                    properties:
                                      $userField:
                                        type: string
                                        enum:
                                          - id
                                          - name
                                          - role
                                          - fullHonorificName
                                          - device
                                          - firstname
                                          - middlename
                                          - surname
                                          - signature
                                          - avatar
                                          - primaryOfficeId
                                          - administrativeAreaId
                                      $location:
                                        type: string
                                    required:
                                      - $userField
                                    additionalProperties: false
                            required:
                              - type
                              - term
                            additionalProperties: false
                      updatedAtLocation:
                        anyOf:
                          - type: object
                            properties:
                              type:
                                type: string
                                const: within
                              location:
                                anyOf:
                                  - type: string
                                  - type: object
                                    properties:
                                      $userField:
                                        type: string
                                        enum:
                                          - id
                                          - name
                                          - role
                                          - fullHonorificName
                                          - device
                                          - firstname
                                          - middlename
                                          - surname
                                          - signature
                                          - avatar
                                          - primaryOfficeId
                                          - administrativeAreaId
                                      $location:
                                        type: string
                                    required:
                                      - $userField
                                    additionalProperties: false
                            required:
                              - type
                              - location
                            additionalProperties: false
                          - type: object
                            properties:
                              type:
                                type: string
                                const: exact
                              term:
                                anyOf:
                                  - type: string
                                  - type: object
                                    properties:
                                      $userField:
                                        type: string
                                        enum:
                                          - id
                                          - name
                                          - role
                                          - fullHonorificName
                                          - device
                                          - firstname
                                          - middlename
                                          - surname
                                          - signature
                                          - avatar
                                          - primaryOfficeId
                                          - administrativeAreaId
                                      $location:
                                        type: string
                                    required:
                                      - $userField
                                    additionalProperties: false
                            required:
                              - type
                              - term
                            additionalProperties: false
                      updatedByUserRole:
                        type: object
                        properties:
                          type:
                            type: string
                            const: exact
                          term:
                            anyOf:
                              - type: string
                              - type: object
                                properties:
                                  $userField:
                                    type: string
                                    enum:
                                      - id
                                      - name
                                      - role
                                      - fullHonorificName
                                      - device
                                      - firstname
                                      - middlename
                                      - surname
                                      - signature
                                      - avatar
                                      - primaryOfficeId
                                      - administrativeAreaId
                                  $location:
                                    type: string
                                required:
                                  - $userField
                                additionalProperties: false
                        required:
                          - type
                          - term
                        additionalProperties: false
                      assignedTo:
                        type: object
                        properties:
                          type:
                            type: string
                            const: exact
                          term:
                            anyOf:
                              - type: string
                              - type: object
                                properties:
                                  $userField:
                                    type: string
                                    enum:
                                      - id
                                      - name
                                      - role
                                      - fullHonorificName
                                      - device
                                      - firstname
                                      - middlename
                                      - surname
                                      - signature
                                      - avatar
                                      - primaryOfficeId
                                      - administrativeAreaId
                                  $location:
                                    type: string
                                required:
                                  - $userField
                                additionalProperties: false
                        required:
                          - type
                          - term
                        additionalProperties: false
                      createdBy:
                        type: object
                        properties:
                          type:
                            type: string
                            const: exact
                          term:
                            anyOf:
                              - type: string
                              - type: object
                                properties:
                                  $userField:
                                    type: string
                                    enum:
                                      - id
                                      - name
                                      - role
                                      - fullHonorificName
                                      - device
                                      - firstname
                                      - middlename
                                      - surname
                                      - signature
                                      - avatar
                                      - primaryOfficeId
                                      - administrativeAreaId
                                  $location:
                                    type: string
                                required:
                                  - $userField
                                additionalProperties: false
                        required:
                          - type
                          - term
                        additionalProperties: false
                      createdByUserType:
                        $ref: "#/components/schemas/ExactUserTypeOutput"
                      updatedBy:
                        type: object
                        properties:
                          type:
                            type: string
                            const: exact
                          term:
                            anyOf:
                              - type: string
                              - type: object
                                properties:
                                  $userField:
                                    type: string
                                    enum:
                                      - id
                                      - name
                                      - role
                                      - fullHonorificName
                                      - device
                                      - firstname
                                      - middlename
                                      - surname
                                      - signature
                                      - avatar
                                      - primaryOfficeId
                                      - administrativeAreaId
                                  $location:
                                    type: string
                                required:
                                  - $userField
                                additionalProperties: false
                        required:
                          - type
                          - term
                        additionalProperties: false
                      trackingId:
                        $ref: "#/components/schemas/ExactOutput"
                      flags:
                        $ref: "#/components/schemas/ContainsFlagsOutput"
                      data:
                        $ref: "#/components/schemas/QueryInputOutput"
                    additionalProperties: false
              required:
                - type
                - clauses
              additionalProperties: false
            - type: object
              properties:
                type:
                  type: string
                  const: or
                clauses:
                  type: array
                  items:
                    type: object
                    properties:
                      eventType:
                        type: string
                      status:
                        anyOf:
                          - $ref: "#/components/schemas/AnyOfStatusOutput"
                          - $ref: "#/components/schemas/ExactStatusOutput"
                      createdAt:
                        $ref: "#/components/schemas/DateConditionOutput"
                      updatedAt:
                        $ref: "#/components/schemas/DateConditionOutput"
                      legalStatuses.DECLARED.createdAtLocation:
                        type: object
                        properties:
                          type:
                            type: string
                            const: within
                          location:
                            anyOf:
                              - type: string
                              - type: object
                                properties:
                                  $userField:
                                    type: string
                                    enum:
                                      - id
                                      - name
                                      - role
                                      - fullHonorificName
                                      - device
                                      - firstname
                                      - middlename
                                      - surname
                                      - signature
                                      - avatar
                                      - primaryOfficeId
                                      - administrativeAreaId
                                  $location:
                                    type: string
                                required:
                                  - $userField
                                additionalProperties: false
                        required:
                          - type
                          - location
                        additionalProperties: false
                      legalStatuses.DECLARED.createdByRole:
                        $ref: "#/components/schemas/AnyOfOutput"
                      legalStatuses.REGISTERED.createdAt:
                        $ref: "#/components/schemas/DateConditionOutput"
                      legalStatuses.REGISTERED.createdAtLocation:
                        type: object
                        properties:
                          type:
                            type: string
                            const: within
                          location:
                            anyOf:
                              - type: string
                              - type: object
                                properties:
                                  $userField:
                                    type: string
                                    enum:
                                      - id
                                      - name
                                      - role
                                      - fullHonorificName
                                      - device
                                      - firstname
                                      - middlename
                                      - surname
                                      - signature
                                      - avatar
                                      - primaryOfficeId
                                      - administrativeAreaId
                                  $location:
                                    type: string
                                required:
                                  - $userField
                                additionalProperties: false
                        required:
                          - type
                          - location
                        additionalProperties: false
                      legalStatuses.REGISTERED.createdByRole:
                        $ref: "#/components/schemas/AnyOfOutput"
                      legalStatuses.REGISTERED.registrationNumber:
                        $ref: "#/components/schemas/ExactOutput"
                      createdAtLocation:
                        anyOf:
                          - type: object
                            properties:
                              type:
                                type: string
                                const: within
                              location:
                                anyOf:
                                  - type: string
                                  - type: object
                                    properties:
                                      $userField:
                                        type: string
                                        enum:
                                          - id
                                          - name
                                          - role
                                          - fullHonorificName
                                          - device
                                          - firstname
                                          - middlename
                                          - surname
                                          - signature
                                          - avatar
                                          - primaryOfficeId
                                          - administrativeAreaId
                                      $location:
                                        type: string
                                    required:
                                      - $userField
                                    additionalProperties: false
                            required:
                              - type
                              - location
                            additionalProperties: false
                          - type: object
                            properties:
                              type:
                                type: string
                                const: exact
                              term:
                                anyOf:
                                  - type: string
                                  - type: object
                                    properties:
                                      $userField:
                                        type: string
                                        enum:
                                          - id
                                          - name
                                          - role
                                          - fullHonorificName
                                          - device
                                          - firstname
                                          - middlename
                                          - surname
                                          - signature
                                          - avatar
                                          - primaryOfficeId
                                          - administrativeAreaId
                                      $location:
                                        type: string
                                    required:
                                      - $userField
                                    additionalProperties: false
                            required:
                              - type
                              - term
                            additionalProperties: false
                      updatedAtLocation:
                        anyOf:
                          - type: object
                            properties:
                              type:
                                type: string
                                const: within
                              location:
                                anyOf:
                                  - type: string
                                  - type: object
                                    properties:
                                      $userField:
                                        type: string
                                        enum:
                                          - id
                                          - name
                                          - role
                                          - fullHonorificName
                                          - device
                                          - firstname
                                          - middlename
                                          - surname
                                          - signature
                                          - avatar
                                          - primaryOfficeId
                                          - administrativeAreaId
                                      $location:
                                        type: string
                                    required:
                                      - $userField
                                    additionalProperties: false
                            required:
                              - type
                              - location
                            additionalProperties: false
                          - type: object
                            properties:
                              type:
                                type: string
                                const: exact
                              term:
                                anyOf:
                                  - type: string
                                  - type: object
                                    properties:
                                      $userField:
                                        type: string
                                        enum:
                                          - id
                                          - name
                                          - role
                                          - fullHonorificName
                                          - device
                                          - firstname
                                          - middlename
                                          - surname
                                          - signature
                                          - avatar
                                          - primaryOfficeId
                                          - administrativeAreaId
                                      $location:
                                        type: string
                                    required:
                                      - $userField
                                    additionalProperties: false
                            required:
                              - type
                              - term
                            additionalProperties: false
                      updatedByUserRole:
                        type: object
                        properties:
                          type:
                            type: string
                            const: exact
                          term:
                            anyOf:
                              - type: string
                              - type: object
                                properties:
                                  $userField:
                                    type: string
                                    enum:
                                      - id
                                      - name
                                      - role
                                      - fullHonorificName
                                      - device
                                      - firstname
                                      - middlename
                                      - surname
                                      - signature
                                      - avatar
                                      - primaryOfficeId
                                      - administrativeAreaId
                                  $location:
                                    type: string
                                required:
                                  - $userField
                                additionalProperties: false
                        required:
                          - type
                          - term
                        additionalProperties: false
                      assignedTo:
                        type: object
                        properties:
                          type:
                            type: string
                            const: exact
                          term:
                            anyOf:
                              - type: string
                              - type: object
                                properties:
                                  $userField:
                                    type: string
                                    enum:
                                      - id
                                      - name
                                      - role
                                      - fullHonorificName
                                      - device
                                      - firstname
                                      - middlename
                                      - surname
                                      - signature
                                      - avatar
                                      - primaryOfficeId
                                      - administrativeAreaId
                                  $location:
                                    type: string
                                required:
                                  - $userField
                                additionalProperties: false
                        required:
                          - type
                          - term
                        additionalProperties: false
                      createdBy:
                        type: object
                        properties:
                          type:
                            type: string
                            const: exact
                          term:
                            anyOf:
                              - type: string
                              - type: object
                                properties:
                                  $userField:
                                    type: string
                                    enum:
                                      - id
                                      - name
                                      - role
                                      - fullHonorificName
                                      - device
                                      - firstname
                                      - middlename
                                      - surname
                                      - signature
                                      - avatar
                                      - primaryOfficeId
                                      - administrativeAreaId
                                  $location:
                                    type: string
                                required:
                                  - $userField
                                additionalProperties: false
                        required:
                          - type
                          - term
                        additionalProperties: false
                      createdByUserType:
                        $ref: "#/components/schemas/ExactUserTypeOutput"
                      updatedBy:
                        type: object
                        properties:
                          type:
                            type: string
                            const: exact
                          term:
                            anyOf:
                              - type: string
                              - type: object
                                properties:
                                  $userField:
                                    type: string
                                    enum:
                                      - id
                                      - name
                                      - role
                                      - fullHonorificName
                                      - device
                                      - firstname
                                      - middlename
                                      - surname
                                      - signature
                                      - avatar
                                      - primaryOfficeId
                                      - administrativeAreaId
                                  $location:
                                    type: string
                                required:
                                  - $userField
                                additionalProperties: false
                        required:
                          - type
                          - term
                        additionalProperties: false
                      trackingId:
                        $ref: "#/components/schemas/ExactOutput"
                      flags:
                        $ref: "#/components/schemas/ContainsFlagsOutput"
                      data:
                        $ref: "#/components/schemas/QueryInputOutput"
                    additionalProperties: false
              required:
                - type
                - clauses
              additionalProperties: false
          type: object
        action:
          description: Workqueue call-to-action button configuration. This determines the
            quick action button shown on each event card and the action taken
            when the button is clicked.
          type: object
          properties:
            type:
              type: string
              enum:
                - READ
                - DELETE
                - DECLARE
                - REGISTER
                - EDIT
                - REJECT
                - MARK_AS_DUPLICATE
                - ARCHIVE
                - PRINT_CERTIFICATE
                - REQUEST_CORRECTION
          required:
            - type
          additionalProperties: false
        columns:
          default:
            - label:
                id: workqueues.dateOfEvent
                defaultMessage: Date of Event
                description: "Label for workqueue column: dateOfEvent"
              value:
                $event: dateOfEvent
            - label:
                id: workqueue.default.column.modifiedAt
                defaultMessage: Last updated
                description: This is the label for the workqueue column
              value:
                $event: updatedAt
          type: array
          items:
            $ref: "#/components/schemas/WorkqueueColumnOutput"
        icon:
          type: string
          enum:
            - Archived
            - Assigned
            - Briefcase
            - Certified
            - Close
            - Collapse
            - Draft
            - DuplicateYellow
            - Expand
            - ExternalValidate
            - FilledCheck
            - InReview
            - Offline
            - Registered
            - RequiresUpdates
            - Sent
            - Validated
            - WaitingApproval
            - ChartActivity
            - Activity
            - Archive
            - ArchiveTray
            - ArrowLeft
            - ArrowRight
            - Buildings
            - Circle
            - CaretDown
            - CaretLeft
            - CaretRight
            - ChartBar
            - ChartLine
            - ChatCircle
            - CheckSquare
            - Compass
            - Check
            - Copy
            - Database
            - DotsThreeVertical
            - ArrowCounterClockwise
            - MagnifyingGlassMinus
            - MagnifyingGlassPlus
            - Export
            - Eye
            - EyeSlash
            - Envelope
            - File
            - FileSearch
            - FileMinus
            - FilePlus
            - FileText
            - FileX
            - Handshake
            - Gear
            - GitBranch
            - IdentificationCard
            - List
            - ListBullets
            - Lock
            - MagnifyingGlass
            - MapPin
            - Medal
            - NotePencil
            - Paperclip
            - PaperPlaneTilt
            - Pen
            - PenNib
            - Pencil
            - PencilSimpleLine
            - Phone
            - Plus
            - Printer
            - SignOut
            - Stamp
            - Star
            - Target
            - TextT
            - Trash
            - UploadSimple
            - User
            - UserPlus
            - Users
            - WarningCircle
            - X
            - ChatText
            - CircleWavyCheck
            - CircleWavyQuestion
            - ArchiveBox
            - ArrowCircleDown
            - FileArrowUp
            - FileDotted
            - Files
            - PencilLine
            - PencilCircle
            - UserCircle
            - Clock
            - QrCode
            - Webcam
            - Sun
            - DeviceTabletCamera
            - Globe
            - Fingerprint
            - PushPin
            - Timer
        emptyMessage:
          $ref: "#/components/schemas/TranslationConfigOutput"
      required:
        - slug
        - name
        - query
        - columns
        - icon
      additionalProperties: false
      description: Configuration for workqueue.
  securitySchemes:
    Authorization:
      type: http
      scheme: bearer

