> ## Documentation Index
> Fetch the complete documentation index at: https://docs.nvisy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# List workspace activities

> Returns the workspace's activity log, most recent first, cursor-paginated. Optional filters: `type` (repeatable, e.g. `file.created`), `actor` (an account ID), and a `from`/`to` day range (each bound narrows only when given; the feed is otherwise all-time).



## OpenAPI

````yaml /api-reference/openapi.json get /workspaces/{workspaceId}/activities
openapi: 3.1.0
info:
  title: Nvisy API
  summary: Document detection and redaction platform
  description: >-
    Nvisy provides intelligent detection of sensitive content in documents,
    redaction pipelines, and reviewer workflows. This API enables document
    upload, detection analysis, redaction, and collaborative review across your
    workspaces.
  termsOfService: https://nvisy.com/legal/terms-of-service
  contact:
    name: Nvisy Support
    url: https://nvisy.com
    email: hello@nvisy.com
  license:
    name: Apache-2.0
    url: https://www.apache.org/licenses/LICENSE-2.0
  version: 0.1.0
servers: []
security: []
tags:
  - name: Health
    description: Service health checks
  - name: Capabilities
    description: Read-only reference data describing this deployment
  - name: Accounts
    description: Account management and profile operations
  - name: Identities
    description: 'Account sign-in methods: password and linked providers'
  - name: Avatars
    description: Public avatar image serving
  - name: Authentication
    description: Login, signup, and token management
  - name: Workspaces
    description: Workspace creation and management
  - name: Activities
    description: Workspace activity log and export
  - name: Documents
    description: Document upload, download, and management
  - name: Analytics
    description: Aggregate metrics over a workspace's documents
  - name: Members
    description: Workspace member management
  - name: Invites
    description: Workspace invitation handling
  - name: API Tokens
    description: API token management
  - name: Connections
    description: External provider connections
  - name: Connection Syncs
    description: Connection synchronization runs
  - name: Providers
    description: Inference-provider configuration
  - name: Pipelines
    description: Redaction pipeline configuration
  - name: Detections
    description: Detection analysis and redaction
  - name: Redactions
    description: Redactions produced from a detection, with reviewer edits
  - name: Reviews
    description: Document reviews, the review queue, and their discussion
  - name: Policies
    description: Redaction policy configuration
  - name: Webhooks
    description: Webhook configuration
  - name: Notifications
    description: Account notification management
paths:
  /workspaces/{workspaceId}/activities:
    get:
      tags:
        - Activities
      summary: List workspace activities
      description: >-
        Returns the workspace's activity log, most recent first,
        cursor-paginated. Optional filters: `type` (repeatable, e.g.
        `file.created`), `actor` (an account ID), and a `from`/`to` day range
        (each bound narrows only when given; the feed is otherwise all-time).
      parameters:
        - in: path
          name: workspaceId
          description: Workspace identifier.
          required: true
          schema:
            description: Workspace identifier.
            type: string
            format: uuid
          style: simple
        - in: query
          name: actor
          description: Account id whose activities to keep. Omit for any actor.
          schema:
            description: Account id whose activities to keep. Omit for any actor.
            type: string
            format: uuid
          style: form
        - in: query
          name: type
          description: >-
            Keep only these activity types (e.g. `document.created`). Repeat the
            `type`

            parameter for several; omit for no type constraint.
          schema:
            description: >-
              Keep only these activity types (e.g. `document.created`). Repeat
              the `type`

              parameter for several; omit for no type constraint.
            type: array
            items:
              $ref: '#/components/schemas/ActivityType'
          style: form
        - in: query
          name: from
          description: >-
            First day of the range (inclusive), `YYYY-MM-DD`. Defaults so the
            range

            spans the last `DEFAULT_WINDOW_DAYS` days through `to`.
          schema:
            description: >-
              First day of the range (inclusive), `YYYY-MM-DD`. Defaults so the
              range

              spans the last `DEFAULT_WINDOW_DAYS` days through `to`.
            type: string
            format: date
          style: form
        - in: query
          name: to
          description: >-
            Last day of the range (inclusive), `YYYY-MM-DD`. Defaults to today
            (UTC).
          schema:
            description: >-
              Last day of the range (inclusive), `YYYY-MM-DD`. Defaults to today
              (UTC).
            type: string
            format: date
          style: form
        - in: query
          name: after
          description: |-
            Cursor pointing to the last item of the previous page.
            Obtain this from the `nextCursor` field in the response.
          schema:
            description: |-
              Cursor pointing to the last item of the previous page.
              Obtain this from the `nextCursor` field in the response.
            type: string
          style: form
        - in: query
          name: includeCount
          description: >-
            Whether to include the total item count in the response's `total`
            field.

            Defaults to `false`, since counting is an extra query; set it to
            `true`

            only when the count is actually needed.
          schema:
            description: >-
              Whether to include the total item count in the response's `total`
              field.

              Defaults to `false`, since counting is an extra query; set it to
              `true`

              only when the count is actually needed.
            type: boolean
            default: false
          style: form
        - in: query
          name: limit
          description: 'The maximum number of records to return (1-100, default: 20).'
          schema:
            description: 'The maximum number of records to return (1-100, default: 20).'
            type: integer
            format: uint32
            maximum: 100
            minimum: 1
          style: form
      responses:
        '200':
          description: >-
            Generic paginated response wrapper.


            Provides a consistent structure for all paginated API responses with

            cursor-based pagination support. When `next_cursor` is present,
            there

            are more items to fetch.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkspaceActivityPage'
        '401':
          description: >-
            The serialized shape of an HTTP error: the inert wire/OpenAPI-schema
            view

            that [`Error`] renders to at the response boundary.


            It carries no builder logic — [`Error`] is the type handlers
            construct and

            thread through `Result`, and it builds an `ErrorResponse` directly
            in its

            `IntoResponse` impl. `context` and `status` are not part of the JSON
            body

            (`context` is logged, `status` sets the HTTP status line).


            [`Error`]: crate::response::Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: >-
            The serialized shape of an HTTP error: the inert wire/OpenAPI-schema
            view

            that [`Error`] renders to at the response boundary.


            It carries no builder logic — [`Error`] is the type handlers
            construct and

            thread through `Result`, and it builds an `ErrorResponse` directly
            in its

            `IntoResponse` impl. `context` and `status` are not part of the JSON
            body

            (`context` is logged, `status` sets the HTTP status line).


            [`Error`]: crate::response::Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
        - BearerAuth: []
components:
  schemas:
    ActivityType:
      description: |-
        The type of activity performed in a workspace, for audit logging.

        Corresponds to the `ACTIVITY_TYPE` `PostgreSQL` enum and categorizes the
        activities that occur within workspaces for a comprehensive audit trail.
      oneOf:
        - description: Workspace was created.
          type: string
          const: workspace.created
        - description: Workspace settings or metadata were updated.
          type: string
          const: workspace.updated
        - description: Workspace was deleted.
          type: string
          const: workspace.deleted
        - description: Member was added to a workspace.
          type: string
          const: member.added
        - description: Member's role or permissions were updated.
          type: string
          const: member.updated
        - description: Member was removed from a workspace.
          type: string
          const: member.deleted
        - description: Invitation was created.
          type: string
          const: invite.created
        - description: Invitation was accepted.
          type: string
          const: invite.accepted
        - description: Invitation was declined.
          type: string
          const: invite.declined
        - description: Invitation was canceled.
          type: string
          const: invite.canceled
        - description: Connection was created.
          type: string
          const: connection.created
        - description: Connection was updated.
          type: string
          const: connection.updated
        - description: Connection was deleted.
          type: string
          const: connection.deleted
        - description: Connection sync started.
          type: string
          const: connection.sync.started
        - description: Connection sync completed.
          type: string
          const: connection.sync.completed
        - description: Connection sync failed.
          type: string
          const: connection.sync.failed
        - description: Provider was created.
          type: string
          const: provider.created
        - description: Provider was updated.
          type: string
          const: provider.updated
        - description: Provider was deleted.
          type: string
          const: provider.deleted
        - description: Webhook was created.
          type: string
          const: webhook.created
        - description: Webhook was updated.
          type: string
          const: webhook.updated
        - description: Webhook was deleted.
          type: string
          const: webhook.deleted
        - description: Document was created.
          type: string
          const: document.created
        - description: Document was updated.
          type: string
          const: document.updated
        - description: Document was deleted.
          type: string
          const: document.deleted
        - description: A review was opened.
          type: string
          const: review.opened
        - description: A review was reopened.
          type: string
          const: review.reopened
        - description: A review's title was changed.
          type: string
          const: review.renamed
        - description: A review was deleted.
          type: string
          const: review.deleted
        - description: A comment (message) was posted in a review.
          type: string
          const: review.comment.created
        - description: A review was verified.
          type: string
          const: review.verified
        - description: A review was assigned to a reviewer.
          type: string
          const: review.assigned
        - description: A review's reviewer was unassigned.
          type: string
          const: review.unassigned
        - description: Pipeline was created.
          type: string
          const: pipeline.created
        - description: Pipeline was updated.
          type: string
          const: pipeline.updated
        - description: Pipeline was deleted.
          type: string
          const: pipeline.deleted
        - description: Detection was started.
          type: string
          const: pipeline.detection.started
        - description: Detection finished analysis.
          type: string
          const: pipeline.detection.completed
        - description: Detection failed.
          type: string
          const: pipeline.detection.failed
        - description: Redaction was created.
          type: string
          const: pipeline.redaction.created
        - description: Policy was created.
          type: string
          const: policy.created
        - description: Policy was updated.
          type: string
          const: policy.updated
        - description: Policy was deleted.
          type: string
          const: policy.deleted
    WorkspaceActivityPage:
      description: |-
        Generic paginated response wrapper.

        Provides a consistent structure for all paginated API responses with
        cursor-based pagination support. When `next_cursor` is present, there
        are more items to fetch.
      type: object
      properties:
        items:
          description: Items in this page.
          type: array
          items:
            $ref: '#/components/schemas/WorkspaceActivity'
        nextCursor:
          description: Cursor to fetch the next page. Present only when more items exist.
          type: string
        total:
          description: Total count of items matching the query (if requested).
          type: integer
          format: int64
      required:
        - items
    ErrorResponse:
      description: >-
        The serialized shape of an HTTP error: the inert wire/OpenAPI-schema
        view

        that [`Error`] renders to at the response boundary.


        It carries no builder logic — [`Error`] is the type handlers construct
        and

        thread through `Result`, and it builds an `ErrorResponse` directly in
        its

        `IntoResponse` impl. `context` and `status` are not part of the JSON
        body

        (`context` is logged, `status` sets the HTTP status line).


        [`Error`]: crate::response::Error
      type: object
      properties:
        message:
          description: User-friendly error message safe for client display.
          type: string
        name:
          description: The error name/type identifier.
          type: string
      required:
        - name
        - message
    WorkspaceActivity:
      description: >-
        Response type for a workspace activity.


        The typed payload is nested under `payload`, so an activity is

        `{ id, workspaceHandle, performedBy, payload: { activityType,
        <params...> }, createdAt }`.
      type: object
      properties:
        createdAt:
          description: When the activity occurred.
          type: string
          format: date-time
        id:
          description: Unique activity identifier.
          type: string
          format: uuid
        payload:
          $ref: '#/components/schemas/ActivityPayload'
          description: >-
            The activity type and its typed params, absent when the stored
            params do

            not decode into their `activityType`.
        performedBy:
          description: Account that performed the activity.
          allOf:
            - $ref: '#/components/schemas/AccountRef'
        workspaceHandle:
          description: URL-safe workspace handle. Display-only.
          allOf:
            - $ref: '#/components/schemas/Handle'
        workspaceId:
          description: Unique identifier of the workspace.
          type: string
          format: uuid
      required:
        - id
        - workspaceId
        - workspaceHandle
        - performedBy
        - createdAt
    ActivityPayload:
      description: >-
        The typed payload of an audit-log activity, tagged by `type` with its
        params

        under `data` (the same `{type, data}` envelope the notification payload
        and

        outbox event use).


        Each variant is one activity type carrying its own params. No rendered
        text is

        included — the client localizes the copy from `type` and the params. The
        `type`

        values match the `ACTIVITY_TYPE` enum.
      oneOf:
        - description: A workspace was created.
          type: object
          properties:
            data:
              $ref: '#/components/schemas/WorkspaceActivityParams'
            type:
              type: string
              const: workspace.created
          required:
            - type
            - data
        - description: A workspace was updated.
          type: object
          properties:
            data:
              $ref: '#/components/schemas/WorkspaceActivityParams'
            type:
              type: string
              const: workspace.updated
          required:
            - type
            - data
        - description: A workspace was deleted.
          type: object
          properties:
            data:
              $ref: '#/components/schemas/WorkspaceActivityParams'
            type:
              type: string
              const: workspace.deleted
          required:
            - type
            - data
        - description: A member joined the workspace.
          type: object
          properties:
            data:
              $ref: '#/components/schemas/MemberActivityParams'
            type:
              type: string
              const: member.added
          required:
            - type
            - data
        - description: A member was updated.
          type: object
          properties:
            data:
              $ref: '#/components/schemas/MemberActivityParams'
            type:
              type: string
              const: member.updated
          required:
            - type
            - data
        - description: A member was removed.
          type: object
          properties:
            data:
              $ref: '#/components/schemas/MemberActivityParams'
            type:
              type: string
              const: member.deleted
          required:
            - type
            - data
        - description: An invite was created.
          type: object
          properties:
            data:
              $ref: '#/components/schemas/InviteActivityParams'
            type:
              type: string
              const: invite.created
          required:
            - type
            - data
        - description: An invite was accepted.
          type: object
          properties:
            data:
              $ref: '#/components/schemas/InviteActivityParams'
            type:
              type: string
              const: invite.accepted
          required:
            - type
            - data
        - description: An invite was declined.
          type: object
          properties:
            data:
              $ref: '#/components/schemas/InviteActivityParams'
            type:
              type: string
              const: invite.declined
          required:
            - type
            - data
        - description: An invite was canceled.
          type: object
          properties:
            data:
              $ref: '#/components/schemas/InviteActivityParams'
            type:
              type: string
              const: invite.canceled
          required:
            - type
            - data
        - description: A connection was created.
          type: object
          properties:
            data:
              $ref: '#/components/schemas/ConnectionActivityParams'
            type:
              type: string
              const: connection.created
          required:
            - type
            - data
        - description: A connection was updated.
          type: object
          properties:
            data:
              $ref: '#/components/schemas/ConnectionActivityParams'
            type:
              type: string
              const: connection.updated
          required:
            - type
            - data
        - description: A connection was deleted.
          type: object
          properties:
            data:
              $ref: '#/components/schemas/ConnectionActivityParams'
            type:
              type: string
              const: connection.deleted
          required:
            - type
            - data
        - description: A connection sync started.
          type: object
          properties:
            data:
              $ref: '#/components/schemas/ConnectionActivityParams'
            type:
              type: string
              const: connection.sync.started
          required:
            - type
            - data
        - description: A connection sync completed.
          type: object
          properties:
            data:
              $ref: '#/components/schemas/ConnectionActivityParams'
            type:
              type: string
              const: connection.sync.completed
          required:
            - type
            - data
        - description: A connection sync failed.
          type: object
          properties:
            data:
              $ref: '#/components/schemas/ConnectionActivityParams'
            type:
              type: string
              const: connection.sync.failed
          required:
            - type
            - data
        - description: A provider was created.
          type: object
          properties:
            data:
              $ref: '#/components/schemas/ProviderActivityParams'
            type:
              type: string
              const: provider.created
          required:
            - type
            - data
        - description: A provider was updated.
          type: object
          properties:
            data:
              $ref: '#/components/schemas/ProviderActivityParams'
            type:
              type: string
              const: provider.updated
          required:
            - type
            - data
        - description: A provider was deleted.
          type: object
          properties:
            data:
              $ref: '#/components/schemas/ProviderActivityParams'
            type:
              type: string
              const: provider.deleted
          required:
            - type
            - data
        - description: A webhook was created.
          type: object
          properties:
            data:
              $ref: '#/components/schemas/WebhookActivityParams'
            type:
              type: string
              const: webhook.created
          required:
            - type
            - data
        - description: A webhook was updated.
          type: object
          properties:
            data:
              $ref: '#/components/schemas/WebhookActivityParams'
            type:
              type: string
              const: webhook.updated
          required:
            - type
            - data
        - description: A webhook was deleted.
          type: object
          properties:
            data:
              $ref: '#/components/schemas/WebhookActivityParams'
            type:
              type: string
              const: webhook.deleted
          required:
            - type
            - data
        - description: A document was created.
          type: object
          properties:
            data:
              $ref: '#/components/schemas/DocumentActivityParams'
            type:
              type: string
              const: document.created
          required:
            - type
            - data
        - description: A document was updated.
          type: object
          properties:
            data:
              $ref: '#/components/schemas/DocumentActivityParams'
            type:
              type: string
              const: document.updated
          required:
            - type
            - data
        - description: A document was deleted.
          type: object
          properties:
            data:
              $ref: '#/components/schemas/DocumentActivityParams'
            type:
              type: string
              const: document.deleted
          required:
            - type
            - data
        - description: A review was opened.
          type: object
          properties:
            data:
              $ref: '#/components/schemas/ReviewActivityParams'
            type:
              type: string
              const: review.opened
          required:
            - type
            - data
        - description: A review was reopened.
          type: object
          properties:
            data:
              $ref: '#/components/schemas/ReviewActivityParams'
            type:
              type: string
              const: review.reopened
          required:
            - type
            - data
        - description: A review's title was changed.
          type: object
          properties:
            data:
              $ref: '#/components/schemas/ReviewActivityParams'
            type:
              type: string
              const: review.renamed
          required:
            - type
            - data
        - description: A review was deleted.
          type: object
          properties:
            data:
              $ref: '#/components/schemas/ReviewActivityParams'
            type:
              type: string
              const: review.deleted
          required:
            - type
            - data
        - description: A comment (message) was posted in a review.
          type: object
          properties:
            data:
              $ref: '#/components/schemas/ReviewCommentActivityParams'
            type:
              type: string
              const: review.comment.created
          required:
            - type
            - data
        - description: A review was verified.
          type: object
          properties:
            data:
              $ref: '#/components/schemas/ReviewActivityParams'
            type:
              type: string
              const: review.verified
          required:
            - type
            - data
        - description: A review was assigned to a reviewer.
          type: object
          properties:
            data:
              $ref: '#/components/schemas/ReviewActivityParams'
            type:
              type: string
              const: review.assigned
          required:
            - type
            - data
        - description: A review's reviewer was unassigned.
          type: object
          properties:
            data:
              $ref: '#/components/schemas/ReviewActivityParams'
            type:
              type: string
              const: review.unassigned
          required:
            - type
            - data
        - description: A pipeline was created.
          type: object
          properties:
            data:
              $ref: '#/components/schemas/PipelineActivityParams'
            type:
              type: string
              const: pipeline.created
          required:
            - type
            - data
        - description: A pipeline was updated.
          type: object
          properties:
            data:
              $ref: '#/components/schemas/PipelineActivityParams'
            type:
              type: string
              const: pipeline.updated
          required:
            - type
            - data
        - description: A pipeline was deleted.
          type: object
          properties:
            data:
              $ref: '#/components/schemas/PipelineActivityParams'
            type:
              type: string
              const: pipeline.deleted
          required:
            - type
            - data
        - description: A detection was started.
          type: object
          properties:
            data:
              $ref: '#/components/schemas/DetectionActivityParams'
            type:
              type: string
              const: pipeline.detection.started
          required:
            - type
            - data
        - description: A detection finished analysis.
          type: object
          properties:
            data:
              $ref: '#/components/schemas/DetectionActivityParams'
            type:
              type: string
              const: pipeline.detection.completed
          required:
            - type
            - data
        - description: A detection failed.
          type: object
          properties:
            data:
              $ref: '#/components/schemas/DetectionActivityParams'
            type:
              type: string
              const: pipeline.detection.failed
          required:
            - type
            - data
        - description: A redaction was created.
          type: object
          properties:
            data:
              $ref: '#/components/schemas/RedactionActivityParams'
            type:
              type: string
              const: pipeline.redaction.created
          required:
            - type
            - data
        - description: A policy was created.
          type: object
          properties:
            data:
              $ref: '#/components/schemas/PolicyActivityParams'
            type:
              type: string
              const: policy.created
          required:
            - type
            - data
        - description: A policy was updated.
          type: object
          properties:
            data:
              $ref: '#/components/schemas/PolicyActivityParams'
            type:
              type: string
              const: policy.updated
          required:
            - type
            - data
        - description: A policy was deleted.
          type: object
          properties:
            data:
              $ref: '#/components/schemas/PolicyActivityParams'
            type:
              type: string
              const: policy.deleted
          required:
            - type
            - data
    AccountRef:
      description: >-
        Public reference to the account behind a resource — whoever created it,

        uploaded it, triggered it, or performed it.


        Reused across resource responses so an account is always presented the
        same

        way: its immutable id (the durable reference) plus a handle and optional

        avatar for display.
      type: object
      properties:
        avatarUrl:
          description: Serve path of the account's avatar, when set.
          type: string
        displayName:
          description: Human-readable display name, when set.
          type: string
        id:
          description: Immutable id of the account.
          type: string
          format: uuid
        username:
          description: Handle of the account (display).
          allOf:
            - $ref: '#/components/schemas/Handle'
      required:
        - id
        - username
    Handle:
      description: >-
        Lowercase, dash-separated identifier used in URLs and as account
        handles.
      type: string
      maxLength: 32
      minLength: 3
      pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
    WorkspaceActivityParams:
      description: Params of a workspace-scoped activity (`workspace.*`).
      type: object
      properties:
        workspaceId:
          description: Id of the workspace acted on.
          type: string
          format: uuid
      required:
        - workspaceId
    MemberActivityParams:
      description: Params of a member activity (`member.*`).
      type: object
      properties:
        memberId:
          description: Id of the member's account.
          type: string
          format: uuid
      required:
        - memberId
    InviteActivityParams:
      description: Params of an invite activity (`invite.*`).
      type: object
      properties:
        email:
          description: >-
            Email the invite was addressed to, when it recorded one. `None`
            keeps an

            absent address distinct from a blank one.
          type: string
        inviteId:
          description: Id of the invite.
          type: string
          format: uuid
      required:
        - inviteId
    ConnectionActivityParams:
      description: Params of a connection activity (`connection.*`).
      type: object
      properties:
        connectionId:
          description: Id of the connection.
          allOf:
            - $ref: '#/components/schemas/ConnectionId'
        connectionName:
          description: Display name of the connection.
          type: string
      required:
        - connectionId
        - connectionName
    ProviderActivityParams:
      description: Params of a provider activity (`provider.*`).
      type: object
      properties:
        providerId:
          description: Id of the provider.
          allOf:
            - $ref: '#/components/schemas/ProviderId'
        providerName:
          description: Display name of the provider.
          type: string
      required:
        - providerId
        - providerName
    WebhookActivityParams:
      description: Params of a webhook activity (`webhook.*`).
      type: object
      properties:
        webhookId:
          description: Id of the webhook.
          allOf:
            - $ref: '#/components/schemas/WebhookId'
        webhookName:
          description: Display name of the webhook.
          type: string
      required:
        - webhookId
        - webhookName
    DocumentActivityParams:
      description: Params of a document activity (`document.*`).
      type: object
      properties:
        documentId:
          description: Id of the document.
          type: string
          format: uuid
        documentName:
          description: Display name of the document.
          type: string
      required:
        - documentId
        - documentName
    ReviewActivityParams:
      description: >-
        Params of a review activity (`review.opened`, `review.reopened`,

        `review.renamed`, `review.deleted`, `review.verified`,
        `review.assigned`,

        `review.unassigned`).
      type: object
      properties:
        assigneeId:
          description: >-
            Id of the reviewer assigned or unassigned; omitted for the events
            that carry

            no reviewer.
          type: string
          format: uuid
        documentId:
          description: Id of the document under review.
          type: string
          format: uuid
        reviewId:
          description: Id of the review.
          type: string
          format: uuid
      required:
        - reviewId
        - documentId
    ReviewCommentActivityParams:
      description: Params of a review-comment activity (`review.comment.created`).
      type: object
      properties:
        commentId:
          description: Id of the comment.
          type: string
          format: uuid
        reviewId:
          description: Id of the review the comment is in.
          type: string
          format: uuid
      required:
        - commentId
        - reviewId
    PipelineActivityParams:
      description: Params of a pipeline activity (`pipeline.*`, non-run).
      type: object
      properties:
        pipelineId:
          description: Id of the pipeline.
          type: string
          format: uuid
      required:
        - pipelineId
    DetectionActivityParams:
      description: Params of a detection activity (`pipeline.detection.*`).
      type: object
      properties:
        detectionId:
          description: Id of the detection.
          allOf:
            - $ref: '#/components/schemas/DetectionId'
        pipelineId:
          description: Id of the owning pipeline; absent for an ad-hoc detection.
          type: string
          format: uuid
      required:
        - detectionId
    RedactionActivityParams:
      description: Params of a redaction activity (`pipeline.redaction.*`).
      type: object
      properties:
        pipelineId:
          description: Id of the owning pipeline; absent when the detection was ad-hoc.
          type: string
          format: uuid
        redactionId:
          description: Id of the redaction.
          allOf:
            - $ref: '#/components/schemas/RedactionId'
      required:
        - redactionId
    PolicyActivityParams:
      description: Params of a policy activity (`policy.*`).
      type: object
      properties:
        policyId:
          description: Id of the policy.
          type: string
          format: uuid
      required:
        - policyId
    ConnectionId:
      description: Opaque conn identifier (conn_<uuid>).
      type: string
      pattern: >-
        ^conn_[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$
    ProviderId:
      description: Opaque prov identifier (prov_<uuid>).
      type: string
      pattern: >-
        ^prov_[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$
    WebhookId:
      description: Opaque whk identifier (whk_<uuid>).
      type: string
      pattern: >-
        ^whk_[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$
    DetectionId:
      description: Opaque detection identifier (detection_<uuid>).
      type: string
      pattern: >-
        ^detection_[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$
    RedactionId:
      description: Opaque redaction identifier (redaction_<uuid>).
      type: string
      pattern: >-
        ^redaction_[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$

````