Cognite Signals API

A signal is a notification that something has occurred in a CDF process. Users and systems may listen to signals by creating a sink and attaching subscriptions with a filter that matches the signals they are interested in. Subscriptions tie sinks to topics. Each topic represents some CDF resource like integrations or workflows. When a signal is emitted for a resource, all subscriptions for that resource's topic are evaluated. If the signal matches the subscription filter, it is pushed to the the sink.

Operations 11

GET /processes/signals/sinks List sinks #
POST /processes/signals/sinks Create sinks #
POST /processes/signals/sinks/byids Retrieve sinks by external IDs #
POST /processes/signals/sinks/delete Delete sinks #
POST /processes/signals/sinks/update Update sinks #
POST /processes/signals/subscriptions Create subscriptions #
POST /processes/signals/subscriptions/list Filter subscriptions #
POST /processes/signals/subscriptions/update Update subscriptions #
POST /processes/signals/subscriptions/delete Delete subscriptions #
POST /processes/signals/list List signals. #
GET /processes/signals/topics List topics #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/cognite-signals-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

cognite-signals-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Cognite 3D Asset Mapping Signals API
  description: "# Introduction\nThis is the reference documentation for the Cognite API with\nan overview of all the available methods.\n\n# Postman\nSelect the **Download** button to download our OpenAPI specification to get started.\n\nTo import your data into Postman, select **Import**, and the Import modal opens.\nYou can import items by dragging or dropping files or folders. You can choose how to import your API and manage the import settings in **View Import Settings**.\n\nIn the Import Settings, set the **Folder organization** to **Tags**, select\n**Enable optional parameters** to turn off the settings, and select **Always inherit authentication** to turn on the settings. Select **Import**.\n\nSet the Authorization to **Oauth2.0**. By default, the settings are for Open Industrial Data. Navigate to [Cognite Hub](https://hub.cognite.com/open-industrial-data-211) to understand how to get the credentials for use in Postman.\n\nFor more information, see [Getting Started with Postman](https://developer.cognite.com/dev/guides/postman/).\n\n# Pagination\nMost resource types can be paginated, indicated by the field `nextCursor` in the response.\nBy passing the value of `nextCursor` as the cursor you will get the next page of `limit` results.\nNote that all parameters except `cursor` has to stay the same.\n\n# Parallel retrieval\nAs general guidance, Parallel Retrieval is a technique that should be used when due to query complexity, retrieval of data in a single request is significantly slower than it would otherwise be for a simple request.  Parallel retrieval does not act as a speed multiplier on optimally running queries.  By parallelizing such requests, data retrieval performance can be tuned to meet the client application needs. \n\nCDF supports parallel retrieval through the `partition` parameter, which has the format `m/n` where `n` is the amount of partitions you would like to split the entire data set into.\nIf you want to download the entire data set by splitting it into 10 partitions, do the following in parallel with `m` running from 1 to 10:\n  - Make a request to `/events` with `partition=m/10`.\n  - Paginate through the response by following the cursor as explained above. Note that the `partition` parameter needs to be passed to all subqueries.\n\nProcessing of parallel retrieval requests is subject to concurrency quota availability. The request returns the `429` response upon exceeding concurrency limits. See the Request throttling chapter below.\n\nTo prevent unexpected problems and to maximize read throughput, you should at most use 10 partitions. \nSome CDF resources will automatically enforce a maximum of 10 partitions.\nFor more specific and detailed information, please read the ```partition``` attribute documentation for the CDF resource you're using.  \n\n# Requests throttling\nCognite Data Fusion (CDF) returns the HTTP `429` (too many requests) response status code when project capacity exceeds the limit.\n\nThe throttling can happen:\n  - If a user or a project sends too many (more than allocated) concurrent requests.\n  - If a user or a project sends a too high (more than allocated) rate of requests in a given amount of time.\n\nCognite recommends using a retry strategy based on truncated exponential backoff to handle sessions with HTTP response codes 429.\n\nCognite recommends using a reasonable number (up to 10) of  `Parallel retrieval` partitions.\n\nFollowing these strategies lets you slow down the request frequency to maximize productivity without having to re-submit/retry failing requests.\n\nSee more [here](https://docs.cognite.com/dev/concepts/resource_throttling).\n\n# API versions\n## Version headers\nThis API uses calendar versioning, and version names follow the `YYYYMMDD` format.\nYou can find the versions currently available by using the version selector at the top of this page.\n\nTo use a specific API version, you can pass the `cdf-version: $version` header along with your requests to the API.\n\n## Beta versions\nThe beta versions provide a preview of what the stable version will look like in the future.\nBeta versions contain functionality that is reasonably mature, and highly likely to become a part of the stable API.\n\nBeta versions are indicated by a `-beta` suffix after the version name. For example, the beta version header for the\n2023-01-01 version is then `cdf-version: 20230101-beta`.\n\n## Alpha versions\nAlpha versions contain functionality that is new and experimental, and not guaranteed to ever become a part of the stable API.\nThis functionality presents no guarantee of service, so its use is subject to caution.\n\nAlpha versions are indicated by an `-alpha` suffix after the version name. For example, the alpha version header for\nthe 2023-01-01 version is then `cdf-version: 20230101-alpha`."
  version: v1
  contact:
    name: Cognite Support
    url: https://support.cognite.com
    email: support@cognite.com
servers:
- url: https://{cluster}.cognitedata.com/api/v1/projects/{project}
  description: The URL for the CDF cluster to connect to
  variables:
    cluster:
      enum:
      - api
      - az-tyo-gp-001
      - az-eastus-1
      - az-power-no-northeurope
      - westeurope-1
      - asia-northeast1-1
      - gc-dsm-gp-001
      default: api
      description: The CDF cluster to connect to
    project:
      default: publicdata
      description: The CDF project name.
security:
- oidc-token:
  - https://{cluster}.cognitedata.com/.default
- oauth2-client-credentials:
  - https://{cluster}.cognitedata.com/.default
- oauth2-open-industrial-data:
  - https://api.cognitedata.com/.default
- oauth2-auth-code:
  - https://{cluster}.cognitedata.com/.default
tags:
- name: Signals
  description: 'A signal is a notification that something has occurred in a CDF process. Users and systems may listen to signals by creating a sink and attaching subscriptions with a filter that matches the signals they are interested in.

    Subscriptions tie sinks to topics. Each topic represents some CDF resource like integrations or workflows. When a signal is emitted for a resource, all subscriptions for that resource''s topic are evaluated. If the signal matches the subscription filter, it is pushed to the the sink.'
paths:
  /processes/signals/sinks:
    get:
      x-capability: subscribeSignalsAcl:READ
      tags:
      - Signals
      summary: List sinks
      description: '


        > **Required capabilities:** `subscribeSignalsAcl:READ`


        List all sinks in the project. This will return all sinks the user has access to. If the user only has "current_user" scope, it will only return the sink for the user making the request, if it exists.

        '
      operationId: listSignalSinks
      parameters:
      - $ref: '#/components/parameters/Limit'
      - $ref: '#/components/parameters/Cursor'
      responses:
        '200':
          description: List of sinks and an optional cursor.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Items_SinkRead_WithCursor'
        '400':
          $ref: '#/components/responses/400ErrorResponse'
        '422':
          $ref: '#/components/responses/ErrorResponse'
          description: Validation Error
    post:
      x-capability: subscribeSignalsAcl:WRITE
      tags:
      - Signals
      summary: Create sinks
      description: '


        > **Required capabilities:** `subscribeSignalsAcl:WRITE`


        Create one or more sinks in the project. A sink represents a destination for signals, either a user sink (signals sent to the user''s e-mail) or an e-mail sink (signals sent to a specified e-mail address).

        '
      operationId: createSignalSinks
      requestBody:
        description: Sinks to create.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Items_SinkWrite'
      responses:
        '200':
          description: Created sinks.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Items_SinkRead'
        '400':
          $ref: '#/components/responses/400ErrorResponse'
        '422':
          $ref: '#/components/responses/ErrorResponse'
          description: Validation Error
  /processes/signals/sinks/byids:
    post:
      x-capability: subscribeSignalsAcl:READ
      tags:
      - Signals
      summary: Retrieve sinks by external IDs
      description: '


        > **Required capabilities:** `subscribeSignalsAcl:READ`


        Retrieve one or more sinks by their external IDs.

        '
      operationId: retrieveSignalSinksByIds
      requestBody:
        description: Sinks to retrieve.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Items_RetrieveSinks'
      responses:
        '200':
          description: Retrieved sinks.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Items_SinkRead'
        '400':
          $ref: '#/components/responses/400ErrorResponse'
        '422':
          $ref: '#/components/responses/ErrorResponse'
          description: Validation Error
  /processes/signals/sinks/delete:
    post:
      x-capability: subscribeSignalsAcl:WRITE
      tags:
      - Signals
      summary: Delete sinks
      description: '


        > **Required capabilities:** `subscribeSignalsAcl:WRITE`


        Delete one or more sinks by their external IDs.

        '
      operationId: deleteSignalSinks
      requestBody:
        description: Sinks to delete.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Items_DeleteSinks'
      responses:
        '200':
          $ref: '#/components/responses/EmptyResponse'
          description: Empty response
        '400':
          $ref: '#/components/responses/400ErrorResponse'
        '422':
          $ref: '#/components/responses/ErrorResponse'
          description: Validation Error
  /processes/signals/sinks/update:
    post:
      x-capability: subscribeSignalsAcl:WRITE
      tags:
      - Signals
      summary: Update sinks
      description: '


        > **Required capabilities:** `subscribeSignalsAcl:WRITE`


        Update one or more sinks in the project.

        '
      operationId: updateSignalSinks
      requestBody:
        description: Sinks to update.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Items_SinkUpdate'
      responses:
        '200':
          description: Updated sinks.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Items_SinkRead'
        '400':
          $ref: '#/components/responses/400ErrorResponse'
        '422':
          $ref: '#/components/responses/ErrorResponse'
          description: Validation Error
  /processes/signals/subscriptions:
    post:
      x-capability: subscribeSignalsAcl:WRITE
      tags:
      - Signals
      summary: Create subscriptions
      description: '


        > **Required capabilities:** `subscribeSignalsAcl:WRITE`


        Create one or more subscriptions in the project. A subscription ties a sink to a topic with a filter that determines which signals will be pushed out to the sink.

        '
      operationId: createSignalSubscriptions
      requestBody:
        description: Subscriptions to create.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Items_SubscriptionWrite'
      responses:
        '200':
          description: Created subscriptions.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Items_SubscriptionRead'
        '400':
          $ref: '#/components/responses/400ErrorResponse'
        '422':
          $ref: '#/components/responses/ErrorResponse'
          description: Validation Error
  /processes/signals/subscriptions/list:
    post:
      x-capability: subscribeSignalsAcl:READ
      tags:
      - Signals
      summary: Filter subscriptions
      description: '


        > **Required capabilities:** `subscribeSignalsAcl:READ`


        Retrieve subscriptions matching a filter.

        '
      operationId: filterSignalSubscriptions
      requestBody:
        description: Subscription filter request.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SubscriptionFilterRequest'
      responses:
        '200':
          description: List of subscriptions and an optional cursor.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Items_SubscriptionRead_WithCursor'
        '400':
          $ref: '#/components/responses/400ErrorResponse'
        '422':
          $ref: '#/components/responses/ErrorResponse'
          description: Validation Error
  /processes/signals/subscriptions/update:
    post:
      x-capability: subscribeSignalsAcl:WRITE
      tags:
      - Signals
      summary: Update subscriptions
      description: '


        > **Required capabilities:** `subscribeSignalsAcl:WRITE`


        Update one or more subscriptions in the project.

        '
      operationId: updateSignalSubscriptions
      requestBody:
        description: Subscriptions to update.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Items_UpdateSubscriptions'
      responses:
        '200':
          description: Updated subscriptions.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Items_SubscriptionRead'
        '400':
          $ref: '#/components/responses/400ErrorResponse'
        '422':
          $ref: '#/components/responses/ErrorResponse'
          description: Validation Error
  /processes/signals/subscriptions/delete:
    post:
      x-capability: subscribeSignalsAcl:WRITE
      tags:
      - Signals
      summary: Delete subscriptions
      description: '


        > **Required capabilities:** `subscribeSignalsAcl:WRITE`


        Delete one or more subscriptions by their external IDs.

        '
      operationId: deleteSignalSubscriptions
      requestBody:
        description: Subscriptions to delete.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Items_DeleteSubscriptions'
      responses:
        '200':
          $ref: '#/components/responses/EmptyResponse'
          description: Empty response
        '400':
          $ref: '#/components/responses/400ErrorResponse'
        '422':
          $ref: '#/components/responses/ErrorResponse'
          description: Validation Error
  /processes/signals/list:
    post:
      x-capability: subscribeSignalsAcl:READ
      tags:
      - Signals
      summary: List signals.
      description: '


        > **Required capabilities:** `subscribeSignalsAcl:READ`


        List all signals for a sink.'
      operationId: listSignals
      requestBody:
        description: Filter for signals to list.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SignalsFilter'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Items_SignalRead_WithCursor'
          description: A list of signals available for the sink.
        '400':
          $ref: '#/components/responses/400ErrorResponse'
        '422':
          $ref: '#/components/responses/ErrorResponse'
          description: Validation Error
  /processes/signals/topics:
    get:
      x-capability: subscribeSignalsAcl:READ
      tags:
      - Signals
      summary: List topics
      description: '


        > **Required capabilities:** `subscribeSignalsAcl:READ`


        List all topics supported by the signals service. Each topic represents a type of CDF resource that can emit signals, such as integrations or workflows. The response includes the available notification categories for each topic, which can be used when creating subscriptions.

        '
      operationId: listSignalTopics
      responses:
        '200':
          description: List of supported topics.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Items_TopicRead'
        '400':
          $ref: '#/components/responses/400ErrorResponse'
components:
  schemas:
    SubscriptionFilterRequest:
      type: object
      title: SubscriptionFilterRequest
      description: Request for filtering subscriptions.
      properties:
        filter:
          oneOf:
          - $ref: '#/components/schemas/FilterIntegrationsSubscriptions'
          - $ref: '#/components/schemas/FilterWorkflowsSubscriptions'
          - $ref: '#/components/schemas/FilterHostedExtractorsSubscriptions'
        limit:
          type: integer
          description: Maximum number of subscriptions to return.
          default: 100
          minimum: 1
          maximum: 100
        cursor:
          type: string
          description: Cursor for pagination.
    UpdateHostedExtractorsSubscriptionFilter:
      type: object
      title: UpdateHostedExtractorsSubscriptionFilter
      allOf:
      - $ref: '#/components/schemas/SubscriptionFilterUpdate'
      - $ref: '#/components/schemas/HostedExtractorFilterProperties'
    FilterWorkflowsSubscriptions:
      allOf:
      - $ref: '#/components/schemas/FilterSubscriptionsBase'
      title: FilterWorkflowsSubscriptions
      required:
      - topic
      properties:
        topic:
          type: string
          enum:
          - cognite_workflows
          description: Topic name.
        metadata:
          type: object
          description: Filter on signal metadata specific to workflows.
          properties: {}
    FilterIsNull:
      type: object
      title: FilterIsNull
      description: Filter on whether the field is null.
      required:
      - isNull
      properties:
        isNull:
          type: boolean
          description: Whether the filter is null.
    SignalSeverity:
      type: string
      description: The severity level of the signal.
      enum:
      - info
      - warning
      - error
    UserSinkUpdateItem:
      type: object
      title: UserSinkUpdateItem
      description: Update a user sink.
      required:
      - externalId
      - update
      - type
      properties:
        type:
          enum:
          - user
          title: Type
          type: string
          description: Sink type.
        externalId:
          $ref: '#/components/schemas/CogniteExternalId'
        update:
          $ref: '#/components/schemas/UserSinkUpdate'
    SubscriptionRead:
      type: object
      required:
      - externalId
      - sink
      - filter
      - createdTime
      - lastUpdatedTime
      title: SubscriptionRead
      description: 'A subscription item which includes the sink and filters available for that subscription.

        The filters here would be the metadata from the service the subscription points to.

        '
      properties:
        externalId:
          $ref: '#/components/schemas/CogniteExternalId'
        sink:
          $ref: '#/components/schemas/ConcreteSinkId'
        filter:
          $ref: '#/components/schemas/SubscriptionFilter'
        createdTime:
          $ref: '#/components/schemas/EpochTimestamp'
        lastUpdatedTime:
          $ref: '#/components/schemas/EpochTimestamp'
    Items_SubscriptionRead_WithCursor:
      type: object
      required:
      - items
      title: SubscriptionReadList
      properties:
        items:
          type: array
          title: Items
          minItems: 0
          maxItems: 100
          items:
            $ref: '#/components/schemas/SubscriptionRead'
        nextCursor:
          type: string
          title: NextCursor
          description: Cursor for retrieving the next page of results. Omitted if there are no more results.
    FilterSubscriptionsBase:
      type: object
      title: FilterSubscriptionsBase
      properties:
        topic:
          type: string
          description: Topic name.
        resource:
          description: Retrieve subscriptions that would match the specified resource ID, or ones with a "null" resource filter.
          oneOf:
          - type: string
            minLength: 1
            maxLength: 512
          - $ref: '#/components/schemas/FilterIsNull'
        category:
          description: Retrieve subscriptions that would match the specified category, or ones with a "null" category filter.
          oneOf:
          - type: string
            minLength: 1
            maxLength: 255
          - $ref: '#/components/schemas/FilterIsNull'
        severity:
          description: Retrieve subscriptions that would match the specified severity, or ones with a "null" severity filter.
          oneOf:
          - $ref: '#/components/schemas/SignalSeverity'
          - $ref: '#/components/schemas/FilterIsNull'
        sink:
          description: Retrieve subscriptions owned by a specific sink.
          $ref: '#/components/schemas/RefSinkId'
    TopicRead:
      type: object
      title: TopicRead
      description: A topic supported by the signals service.
      required:
      - name
      - isGlobal
      - categories
      properties:
        name:
          $ref: '#/components/schemas/SupportedTopics'
        isGlobal:
          type: boolean
          description: Whether this topic is available globally across all projects.
        categories:
          type: array
          title: Categories
          description: 'The notification categories this topic can emit. Use these values when filtering subscriptions by category.

            '
          items:
            type: string
            minLength: 1
    UserSinkUpdate:
      type: object
      title: UserSinkUpdate
      description: Update request for a user sink.
      properties: {}
    EmailSinkUpdate:
      type: object
      title: EmailSinkUpdate
      description: Update request for an email sink.
      properties:
        emailAddress:
          type: object
          properties:
            set:
              type: string
              title: EmailAddress
              description: The e-mail address to send signals to.
              minLength: 3
              maxLength: 255
          required:
          - set
          description: Set the e-mail address of the sink.
    Items_SinkRead:
      type: object
      required:
      - items
      title: SinkReadList
      properties:
        items:
          type: array
          title: Items
          minItems: 1
          maxItems: 100
          items:
            $ref: '#/components/schemas/SinkRead'
    EmailSinkUpdateItem:
      type: object
      title: EmailSinkUpdateItem
      description: Update an e-mail sink.
      required:
      - externalId
      - update
      - type
      properties:
        type:
          enum:
          - email
          title: Type
          type: string
          description: Sink type.
        externalId:
          $ref: '#/components/schemas/CogniteExternalId'
        update:
          $ref: '#/components/schemas/EmailSinkUpdate'
    EpochTimestamp:
      description: The number of milliseconds since 00:00:00 Thursday, 1 January 1970, Coordinated Universal Time (UTC), minus leap seconds.
      type: integer
      minimum: 0
      format: int64
      example: 1730204346000
    WorkflowsSubscriptionFilter:
      type: object
      title: WorkflowsSubscriptionFilter
      allOf:
      - $ref: '#/components/schemas/SubscriptionFilterUpdate'
      required:
      - topic
      properties:
        topic:
          type: string
          enum:
          - cognite_workflows
          description: Topic name.
    Items_TopicRead:
      type: object
      title: Items_TopicRead
      description: List of topics.
      required:
      - items
      properties:
        items:
          type: array
          title: Items
          items:
            $ref: '#/components/schemas/TopicRead'
    IntegrationsSubscriptionFilter:
      type: object
      title: IntegrationsSubscriptionFilter
      allOf:
      - $ref: '#/components/schemas/SubscriptionFilterUpdate'
      required:
      - topic
      properties:
        topic:
          type: string
          enum:
          - cognite_integrations
          description: Topic name.
        extractorExternalId:
          type: string
          minLength: 1
          maxLength: 255
          description: Filter signals to only include those from integrations with the specified extractor external ID.
        extractorVersion:
          type: string
          minLength: 1
          maxLength: 32
          description: Filter signals to only include those from integrations with the specified extractor version.
    SubscriptionFilter:
      description: 'Filter used to select which signals will be received by a subscription. Omitted fields are ignored when filtering, allowing signals with any value in that field.

        '
      discriminator:
        mapping:
          cognite_integrations: '#/components/schemas/IntegrationsSubscriptionFilter'
          cognite_workflows: '#/components/schemas/WorkflowsSubscriptionFilter'
          cognite_hosted_extractors: '#/components/schemas/HostedExtractorsSubscriptionFilter'
        propertyName: topic
      oneOf:
      - $ref: '#/components/schemas/IntegrationsSubscriptionFilter'
      - $ref: '#/components/schemas/WorkflowsSubscriptionFilter'
      - $ref: '#/components/schemas/HostedExtractorsSubscriptionFilter'
    HostedExtractorsSignalMetadata:
      type: object
      title: HostedExtractorsSignalMetadata
      description: Metadata specific to hosted extractor signals.
      properties:
        sourceType:
          type: string
          description: Source type of the hosted extractor.
        sourceExternalId:
          type: string
          description: Source external ID of the hosted extractor.
        destinationExternalId:
          type: string
          description: Destination external ID of the hosted extractor.
    CurrentUserSinkId:
      type: object
      required:
      - externalId
      - type
      title: CurrentUserSinkId
      properties:
        type:
          enum:
          - current_user
          title: Type
          type: string
          description: Sink type.
    CurrentUserSinkUpdateItem:
      type: object
      title: CurrentUserSinkUpdateItem
      description: Update the sink for the user making the request.
      required:
      - externalId
      - update
      - type
      properties:
        type:
          enum:
          - current_user
          title: Type
          type: string
          description: Sink type.
        update:
          $ref: '#/components/schemas/UserSinkUpdate'
    SinkWrite:
      discriminator:
        mapping:
          email: '#/components/schemas/EmailSinkWrite'
          user: '#/components/schemas/UserSinkWrite'
        propertyName: type
      oneOf:
      - $ref: '#/components/schemas/EmailSinkWrite'
      - $ref: '#/components/schemas/UserSinkWrite'
    SupportedTopics:
      type: string
      enum:
      - cognite_integrations
      - cognite_workflows
      - cognite_hosted_extractors
      description: Topics supported by the service.
    SignalsFilter:
      type: object
      title: SignalsFilter
      description: Filter for signals to list.
      required:
      - sink
      properties:
        sink:
          $ref: '#/components/schemas/RefSinkId'
        topic:
          type: string
          enum:
          - cognite_workflows
          - cognite_integrations
          - cognite_hosted_extractors
          description: Topic name
        cursor:
          type: string
          description: Cursor for pagination. This cursor is temporary hence should not be saved.
        limit:
          type: integer
          description: Maximum number of subscriptions to return.
          default: 100
          minimum: 1
          maximum: 100
    UpdateIntegrationsSubscriptionFilter:
      type: object
      title: UpdateIntegrationsSubscriptionFilter
      allOf:
      - $ref: '#/components/schemas/SubscriptionFilterUpdate'
      properties:
        extractorExternalId:
          type: string
          minLength: 1
          maxLength: 255
          description: Filter signals to only include those from integrations with the specified extractor external ID.
        extractorVersion:
          type: string
          minLength: 1
          maxLength: 32
          description: Filter signals to only include those from integrations with the specified extractor version.
    Items_SinkWrite:
      type: object
      required:
      - items
      title: SinkWriteList
      properties:
        items:
          type: array
          title: Items
          minItems: 1
          maxItems: 100
          items:
            $ref: '#/components/schemas/SinkWrite'
    SignalsNotificationRead:
      type: object
      title: SignalRead
      description: A signal item
      required:
      - topic
      - sink
      - externalId
      - severity
      - resourceId
      - category
      - metadata
      - message
      properties:
        topic:
          $ref: '#/components/schemas/SupportedTopics'
        sink:
          $ref: '#/components/schemas/RefSinkId'
        externalId:
          $ref: '#/components/schemas/CogniteExternalId'
        severity:
          $ref: '#/components/schemas/SignalSeverity'
        resourceId:
          type: string
          title: ResourceId
        category:
          type: string
          title: Category
        metadata:
          oneOf:
          - $ref: '#/components/schemas/IntegrationSignalMetadata'
          - $ref: '#/components/schemas/WorkflowSignalMetadata'
          - $ref: '#/components/schemas/HostedExtractorsSignalMetadata'
        message:
          type: string
          title: Message
          description: 'Could be a summary or a detailed message of the signal.

            '
        details:
          type: string
          title: Details
          description: Details of a signal.
    Items_DeleteSinks:
      type: object
      required:
      - items
      title: DeleteSinksList
      properties:
        items:
          type: array
          title: Items
          minItems: 1
          maxItems: 100
          items:
            $ref: '#/components/schemas/ConcreteSinkId'
        ignoreUnknownIds:
          type: boolean
          title: IgnoreUnknownIds
          description: 'Ignore external IDs that are not found

            '
          default: false
    Items_SubscriptionWrite:
      type: object
      required:
      - items
      title: SubscriptionWriteList
      properties:
        items:
          type: array
          title: Items
          minItems: 1
          maxItems: 10
          items:
            $ref: '#/components/schemas/SubscriptionWrite'
    UserSink:
      type: object
      title: UserSinkWrite
      description: Description of a user sink. The external ID of the sink matches a user in the user profiles API.
      required:
      - type
      - externalId
      - createdTime
      - lastUpdatedTime
      properties:
        type:
          enum:
          - user
          title: Type
          type: string
          description: Sink type.
        emailAddress:
          type: string
          title: EmailAddress
          description: The e-mail address to send signals to. Can be null if the user has no e-mail set.
          minLength: 3
          maxLength: 255
        externalId:
          $ref: '#/components/schemas/CogniteExternalId'
        createdTime:
          $ref: '#/components/schemas/EpochTimestamp'
        lastUpdatedTime:
          $ref: '#/components/schemas/EpochTimestamp'
    UserSinkWrite:
      type: object
      title: UserSinkWrite
      description: Request to create a user sink. The external ID of the sink must match a user in the user profiles API.
      required:
      - type
      - externalId
      properties:
        type:
          enum:
          - user
          title: Type
          type: string
          description: Sink ty

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