Cognite Relationships API

The relationships resource type represents connections between resource objects in CDF. Relationships allow you to organize assets in other structures in addition to the standard hierarchical asset structure. Each relationship is between a source and a target object and is defined by a relationship type and the external IDs and resource types of the source and target objects. Optionally, a relationship can be time-constrained with a start and end time. To define and manage the available relationship types, use the labels resource type. The externalId field uniquely identifies each relationship.

Operations 6

POST /relationships Create relationships #
GET /relationships List relationships #
POST /relationships/update Update relationships #
POST /relationships/delete Delete relationships #
POST /relationships/byids Retrieve relationships #
POST /relationships/list Filter relationships #

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-relationships-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-relationships-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Cognite 3D Asset Mapping Relationships 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: Relationships
  description: 'The relationships resource type represents connections between resource objects in CDF. Relationships allow you to organize assets in other structures in addition to the standard hierarchical asset structure.

    Each relationship is between a source and a target object and is defined by a relationship type and the external IDs and resource types of the source and target objects. Optionally, a relationship can be time-constrained with a start and end time.

    To define and manage the available relationship types, use the labels resource type.

    The externalId field uniquely identifies each relationship.'
paths:
  /relationships:
    post:
      summary: Create relationships
      tags:
      - Relationships
      description: '


        > **Required capabilities:** `relationshipsAcl:WRITE`


        List of the relationships to create. You can create a maximum of 1000 relationships per request. Relationships should be unique, but CDF does not prevent you from creating duplicates where only the externalId differs.


        Relationships are uniquely identified by their externalId. Non-unique relationships will not be created.


        The order of relationships in the response equals the order in the request.'
      operationId: createRelationships
      responses:
        '201':
          $ref: '#/components/responses/persistedRelationships'
        '400':
          $ref: '#/components/responses/400GeneralError'
        '409':
          $ref: '#/components/responses/409GeneralError'
        '500':
          $ref: '#/components/responses/generalError'
      requestBody:
        $ref: '#/components/requestBodies/newRelationship'
      deprecated: false
      x-capability:
      - relationshipsAcl:WRITE
      x-code-samples:
      - lang: JavaScript
        label: JavaScript SDK
        source: "const relationships = [\n  {\n     externalId: 'some_relationship',\n     sourceExternalId: 'some_source_external_id',\n     sourceType: 'asset' as const,\n     targetExternalId: 'some_target_external_id',\n     targetType: 'event' as const\n  }\n];\nconst createdRelationships = await client.relationships.create(relationships);"
      - lang: Python
        label: Python SDK
        source: "from cognite.client.data_classes import Relationship\nflowrel1 = Relationship(\n    external_id=\"flow_1\",\n    source_external_id=\"source_ext_id\",\n    source_type=\"asset\",\n    target_external_id=\"target_ext_id\",\n    target_type=\"event\",\n    confidence=0.1,\n    data_set_id=1234\n)\nflowrel2 = Relationship(\n    external_id=\"flow_2\",\n    source_external_id=\"source_ext_id\",\n    source_type=\"asset\",\n    target_external_id=\"target_ext_id\",\n    target_type=\"event\",\n    confidence=0.1,\n    data_set_id=1234\n)\nres = client.relationships.create([flowrel1,flowrel2])\n"
      - lang: Java
        label: Java SDK
        source: "List<Asset> assetUpsertList = //list of Asset; \nList<Event> eventUpsertList = //list of Event; \nList<TimeseriesMetadata> timseriesUpsertList = //list of TimeseriesMetadata; \nList<SequenceMetadata> sequenceUpsertList = // list of SequenceMetadata; \n\nList<Relationship> relationshipList = new ArrayList<>(); \n\n//EVENT AND ASSET \nrelationshipList.add( \n     Relationship.newBuilder() \n          .setStartTime(Instant.now().toEpochMilli()) \n          .setEndTime(Instant.now().toEpochMilli()) \n          .setSourceType(Relationship.ResourceType.EVENT) \n          .setSourceExternalId(eventUpsertList.get(0).getExternalId()) \n          .setTargetType(Relationship.ResourceType.ASSET) \n          .setTargetExternalId(assetUpsertList.get(0).getExternalId()) \n          .setConfidence(ThreadLocalRandom.current().nextFloat()) \n          .build()); \n\n//TIME_SERIES AND ASSET \nrelationshipList.add( \n     Relationship.newBuilder() \n          .setStartTime(Instant.now().toEpochMilli()) \n          .setEndTime(Instant.now().toEpochMilli()) \n          .setSourceType(Relationship.ResourceType.TIME_SERIES) \n          .setSourceExternalId(timseriesUpsertList.get(1).getExternalId()) \n          .setTargetType(Relationship.ResourceType.ASSET) \n          .setTargetExternalId(assetUpsertList.get(1).getExternalId()) \n          .setConfidence(ThreadLocalRandom.current().nextFloat()) \n          .build()); \n\n//SEQUENCE AND EVENT \nrelationshipList.add( \n     Relationship.newBuilder() \n          .setStartTime(Instant.now().toEpochMilli()) \n          .setEndTime(Instant.now().toEpochMilli()) \n          .setSourceType(Relationship.ResourceType.SEQUENCE) \n          .setSourceExternalId(sequenceUpsertList.get(2).getExternalId()) \n          .setTargetType(Relationship.ResourceType.EVENT) \n          .setTargetExternalId(eventUpsertList.get(2).getExternalId()) \n          .setConfidence(ThreadLocalRandom.current().nextFloat()) \n          .build()); \n\nList<Relationship> upsertRelationshipsList = client.relationships() \n          .upsert(relationshipList); \n\n"
    get:
      summary: List relationships
      tags:
      - Relationships
      description: '


        > **Required capabilities:** `relationshipsAcl:READ`


        Lists all relationships. The order of retrieved objects may change for two calls with the same parameters.

        The endpoint supports pagination. The initial call to this endpoint should not contain a cursor, but the cursor parameter should be used to retrieve further pages of results.'
      operationId: getRelationships
      parameters:
      - $ref: '#/components/parameters/Limit'
      - $ref: '#/components/parameters/Cursor'
      - $ref: '#/components/parameters/partition'
      responses:
        '200':
          $ref: '#/components/responses/pagedPersistedRelationships'
        '500':
          $ref: '#/components/responses/generalError'
      deprecated: false
      x-capability:
      - relationshipsAcl:READ
  /relationships/update:
    post:
      summary: Update relationships
      tags:
      - Relationships
      description: '


        > **Required capabilities:** `relationshipsAcl:WRITE` `relationshipsAcl:READ`


        Update relationships between resources according to the partial definitions of the relationships given in the payload of the request. This means that fields not mentioned in the payload will remain unchanged. Up to 1000 relationships can be updated in one operation.

        To delete a value from an optional value the `setNull` field should be set to `true`.

        The order of the updated relationships in the response equals the order in the request.'
      operationId: updateRelationships
      requestBody:
        $ref: '#/components/requestBodies/updateObject'
      responses:
        '200':
          $ref: '#/components/responses/persistedRelationships'
        '400':
          $ref: '#/components/responses/generalError'
        '409':
          $ref: '#/components/responses/409GeneralError'
      x-capability:
      - relationshipsAcl:WRITE
      - relationshipsAcl:READ
      x-code-samples:
      - lang: Python
        label: Python SDK
        source: 'rel = client.relationships.retrieve(external_id="flow1")

          rel.confidence = 0.75

          res = client.relationships.update(rel)


          from cognite.client.data_classes import RelationshipUpdate

          my_update = RelationshipUpdate(external_id="flow_1").source_external_id.set("alternate_source").confidence.set(0.97)

          res1 = client.relationships.update(my_update)

          another_update = RelationshipUpdate(external_id="flow_1").confidence.set(None)

          res2 = client.relationships.update(another_update)


          from cognite.client.data_classes import RelationshipUpdate

          my_update = RelationshipUpdate(external_id="flow_1").labels.add(["PUMP", "VERIFIED"])

          res = client.relationships.update(my_update)


          from cognite.client.data_classes import RelationshipUpdate

          my_update = RelationshipUpdate(external_id="flow_1").labels.remove("PUMP")

          res = client.relationships.update(my_update)

          '
      - lang: Java
        label: Java SDK
        source: "List<Relationship> relationshipList = // list of Relationship for update; \nList<Relationship> upsertRelationshipsList = \n          client.relationships().upsert(relationshipList); \n\n"
  /relationships/delete:
    post:
      summary: Delete relationships
      tags:
      - Relationships
      description: '


        > **Required capabilities:** `relationshipsAcl:WRITE`


        Delete the relationships between resources identified by the external IDs in the request. You can delete a maximum of 1000 relationships per request.'
      operationId: deleteRelationships
      requestBody:
        $ref: '#/components/requestBodies/delete'
      responses:
        '202':
          $ref: '#/components/responses/emptyDeleteResponse'
        '409':
          $ref: '#/components/responses/409GeneralError'
        '500':
          $ref: '#/components/responses/generalError'
      x-capability:
      - relationshipsAcl:WRITE
      deprecated: false
      x-code-samples:
      - lang: JavaScript
        label: JavaScript SDK
        source: 'await client.relationships.delete([{externalId: ''abc''}, {externalId: ''def''}]);'
      - lang: Python
        label: Python SDK
        source: 'client.relationships.delete(external_id=["a","b"])

          '
      - lang: Java
        label: Java SDK
        source: "List<Item> deleteItemsInput = List.of(Item.newBuilder() \n          .setExternalId(\"10\") \n          .build()); \nList<Item> deleteItemsResults = \n          client.relationships().delete(deleteItemsInput); \n\n"
  /relationships/byids:
    post:
      summary: Retrieve relationships
      tags:
      - Relationships
      description: '


        > **Required capabilities:** `relationshipsAcl:READ`


        Retrieve relationships by external IDs. You can retrieve a maximum of 1000 relationships per request.

        The order of the relationships in the response equals the order in the request.'
      operationId: byidsRelationships
      requestBody:
        $ref: '#/components/requestBodies/listOfExternalIds'
      responses:
        '200':
          $ref: '#/components/responses/enrichedPersistedRelationships'
        '400':
          $ref: '#/components/responses/generalError'
        '409':
          $ref: '#/components/responses/409GeneralError'
      x-capability:
      - relationshipsAcl:READ
      deprecated: false
      x-code-samples:
      - lang: JavaScript
        label: JavaScript SDK
        source: 'const relationships = await client.relationships.retrieve([{externalId: ''abc''}, {externalId: ''def''}]);'
      - lang: Python
        label: Python SDK
        source: 'res = client.relationships.retrieve_multiple(external_ids=["abc", "def"])

          '
      - lang: Java
        label: Java SDK
        source: "List<Item> byExternalIds = List.of(Item.newBuilder() \n          .setExternalId(\"10\") \n          .build()); \nList<Relationship> list = \n          client.relationships().retrieve(byExternalIds);//by list of items \nList<Relationship> list = \n          client.relationships().retrieve(\"10\", \"20\");//by varargs of String \n\nList<Item> byInternalIds = List.of(Item.newBuilder() \n          .setId(10) \n          .build()); \nList<Relationship> list = \n          client.relationships().retrieve(byInternalIds, true);//by list of items \nList<Relationship> list1 = \n          client.relationships().retrieve(10,20);//by varargs of Long \n\n"
  /relationships/list:
    post:
      summary: Filter relationships
      tags:
      - Relationships
      description: '


        > **Required capabilities:** `relationshipsAcl:READ`


        Lists relationships matching the query filter in the request. You can retrieve a maximum of 1000 relationships per request.'
      operationId: listRelationships
      requestBody:
        $ref: '#/components/requestBodies/advancedList'
      responses:
        '200':
          $ref: '#/components/responses/filteredRelationships'
        '400':
          $ref: '#/components/responses/generalError'
        '409':
          $ref: '#/components/responses/409GeneralError'
      x-capability:
      - relationshipsAcl:READ
      deprecated: false
      x-code-samples:
      - lang: JavaScript
        label: JavaScript SDK
        source: 'const relationships = await client.relationships.list({ filter: { createdTime: { min: new Date(''1 jan 2018''), max: new Date(''1 jan 2019'') }}});'
      - lang: Python
        label: Python SDK
        source: "relationship_list = client.relationships.list(limit=5)\n\nfor relationship in client.relationships:\n    relationship # do something with the relationship\n"
      - lang: Java
        label: Java SDK
        source: "List<Relationship> listRelationshipsResults = new ArrayList<>(); \nclient.relationships() \n          .list() \n          .forEachRemaining(listRelationshipsResults::addAll); \n\nclient.relationships() \n          .list(Request.create() \n               .withRootParameter(\"fetchResources\", true)) \n          .forEachRemaining(listRelationshipsResults::addAll); \n\n"
components:
  schemas:
    Label:
      type: object
      title: Label
      required:
      - externalId
      description: A label assigned to a resource.
      properties:
        externalId:
          description: An external ID to a predefined label definition.
          allOf:
          - $ref: '#/components/schemas/CogniteExternalId'
    DataSetIdEither:
      oneOf:
      - $ref: '#/components/schemas/DataSetInternalId'
      - $ref: '#/components/schemas/DataSetExternalId'
    MultiLineString:
      type: object
      required:
      - type
      - coordinates
      properties:
        type:
          type: string
          enum:
          - MultiLineString
        coordinates:
          $ref: '#/components/schemas/MultiLineStringCoordinates'
    AssetMetadata:
      type: object
      description: 'Custom, application specific metadata. String key -> String value. Limits: Maximum length of key is 128 bytes, value 10240 bytes, up to 256 key-value pairs, of total size at most 10240.'
      additionalProperties:
        type: string
        maxLength: 10240
      x-maxKeyLength: 128
      x-maxTotalSize: 10240
      maxProperties: 256
    startTime:
      description: The time, in milliseconds since Jan. 1, 1970, when the relationship became active. If there is no startTime, the relationship is active from the beginning of time until endTime.
      allOf:
      - $ref: '#/components/schemas/EpochTimestamp'
    relationshipsAdvancedListRequest:
      type: object
      properties:
        filter:
          $ref: '#/components/schemas/advancedListFilter'
        limit:
          $ref: '#/components/schemas/Limit/properties/limit'
        cursor:
          $ref: '#/components/schemas/Cursor/properties/cursor'
        fetchResources:
          $ref: '#/components/schemas/fetchResources'
        partition:
          $ref: '#/components/schemas/Partition'
    EventSubType:
      maxLength: 64
      type: string
      description: SubType of the event, e.g 'electrical'.
    ignoreUnknownIds:
      description: Ignore external IDs that are not found.
      type: boolean
      default: false
    resourceReferenceWithExternalId:
      type: object
      required:
      - resource
      - resourceId
      properties:
        type:
          $ref: '#/components/schemas/resourceType'
        externalId:
          $ref: '#/components/schemas/resourceExternalId'
    PointCoordinates:
      description: 'Coordinates of a point in 2D space, described as an array of 2 numbers.


        Example: `[4.306640625, 60.205710352530346]`

        '
      type: array
      minItems: 2
      maxItems: 2
      items:
        type: number
    EventType:
      maxLength: 64
      type: string
      description: Type of the event, e.g 'failure'.
    Event:
      allOf:
      - $ref: '#/components/schemas/InternalEvent'
      - $ref: '#/components/schemas/InternalId'
      - type: object
        required:
        - createdTime
        - lastUpdatedTime
        properties:
          lastUpdatedTime:
            $ref: '#/components/schemas/EpochTimestamp'
          createdTime:
            $ref: '#/components/schemas/EpochTimestamp'
    CogniteInternalId:
      description: A server-generated ID for the object.
      type: integer
      minimum: 1
      maximum: 9007199254740991
      format: int64
    deleteRequest:
      type: object
      required:
      - items
      properties:
        items:
          $ref: '#/components/schemas/itemsArray'
        ignoreUnknownIds:
          $ref: '#/components/schemas/ignoreUnknownIds'
    FilesMetadata:
      allOf:
      - $ref: '#/components/schemas/ExternalFilesMetadata'
      - type: object
        required:
        - id
        - uploaded
        - createdTime
        - lastUpdatedTime
        properties:
          id:
            $ref: '#/components/schemas/CogniteInternalId'
          uploaded:
            type: boolean
            description: Whether or not the actual file is uploaded. This field is returned only by the API, it has no effect in a post body.
            example: true
          uploadedTime:
            $ref: '#/components/schemas/EpochTimestamp'
          createdTime:
            $ref: '#/components/schemas/EpochTimestamp'
          lastUpdatedTime:
            $ref: '#/components/schemas/EpochTimestamp'
          instanceId:
            $ref: '#/components/schemas/InstanceId'
    sourceExternalId:
      description: The external ID of the resource that is the relationship source.
      allOf:
      - $ref: '#/components/schemas/resourceExternalId'
    InstanceSpace:
      type: string
      pattern: ^[a-zA-Z][a-zA-Z0-9_-]{0,41}[a-zA-Z0-9]?$
      minLength: 1
      maxLength: 43
    FileName:
      type: string
      description: Name of the file.
      maxLength: 256
    updateDataSetId:
      title: updateDataSetId
      type: object
      oneOf:
      - $ref: '#/components/schemas/setDataSetId'
      - $ref: '#/components/schemas/RemoveField'
      description: Set a new value for the dataSet Ids, or remove the value.
    updateStartTime:
      title: updateStartTime
      type: object
      oneOf:
      - $ref: '#/components/schemas/setStartTime'
      - $ref: '#/components/schemas/RemoveField'
      description: Set a new value for the start time, or remove the value.
    LabelsPatch:
      description: 'Updates the resource''s assigned labels.


        Labels can be added, removed or replaced (set). Adding an already attached label is an idempotent operation. Removing a label with no matching externalId is silently ignored.'
      oneOf:
      - $ref: '#/components/schemas/LabelsAddRemove'
      - $ref: '#/components/schemas/LabelsSet'
    Point:
      type: object
      required:
      - type
      - coordinates
      properties:
        type:
          type: string
          enum:
          - Point
        coordinates:
          $ref: '#/components/schemas/PointCoordinates'
    MultiPolygonCoordinates:
      description: 'List of multiple polygons.


        Each polygon is defined as a list of one or more linear rings representing a shape.


        A linear ring is the boundary of a surface or the boundary of a hole in a surface. It is defined as a list consisting of 4 or more Points, where the first and last Point is equivalent.


        Each Point is defined as an array of 2 numbers, representing coordinates of a point in 2D space.


        Example: `[[[[30, 20], [45, 40], [10, 40], [30, 20]]], [[[15, 5], [40, 10], [10, 20], [5, 10], [15, 5]]]]`

        '
      type: array
      items:
        $ref: '#/components/schemas/PolygonCoordinates'
    TimeSeriesMetadata:
      type: object
      description: Custom, application specific metadata. String key -> String value. Maximum length of key is 128 bytes, up to 256 key-value pairs, of total size of at most 10000 bytes across all keys and values.
      additionalProperties:
        type: string
    GeoLocationGeometry:
      type: object
      required:
      - type
      description: Represents the points, curves and surfaces in the coordinate space.
      oneOf:
      - $ref: '#/components/schemas/Point'
      - $ref: '#/components/schemas/LineString'
      - $ref: '#/components/schemas/Polygon'
      - $ref: '#/components/schemas/MultiPoint'
      - $ref: '#/components/schemas/MultiLineString'
      - $ref: '#/components/schemas/MultiPolygon'
      discriminator:
        propertyName: type
    updateConfidence:
      title: updateConfidence
      type: object
      oneOf:
      - $ref: '#/components/schemas/setConfidence'
      - $ref: '#/components/schemas/RemoveField'
      description: Set a new value for the confidence, or remove the value.
    byIdsRequest:
      type: object
      required:
      - items
      properties:
        items:
          $ref: '#/components/schemas/itemsArray'
        ignoreUnknownIds:
          $ref: '#/components/schemas/ignoreUnknownIds'
        fetchResources:
          $ref: '#/components/schemas/fetchResources'
    FilesMetadataField:
      type: object
      description: 'Custom, application specific metadata. String key -> String value. Limits: Maximum length of key is 128 bytes, value 10240 bytes, up to 256 key-value pairs, of total size at most 10240.'
      additionalProperties:
        type: string
    cursorObject:
      type: object
      properties:
        nextCursor:
          type: string
          description: The cursor to get the next page of results (if available).
    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
    MultiPoint:
      type: object
      required:
      - type
      - coordinates
      properties:
        type:
          type: string
          enum:
          - MultiPoint
        coordinates:
          $ref: '#/components/schemas/MultiPointCoordinates'
    AssetSource:
      type: string
      maxLength: 128
      description: The source of the asset.
    Polygon:
      type: object
      required:
      - type
      - coordinates
      properties:
        type:
          type: string
          enum:
          - Polygon
        coordinates:
          $ref: '#/components/schemas/PolygonCoordinates'
    confidence:
      description: Confidence value of the existence of the relationship. Generated relationships provide a score of the likelihood of the relationship existing. Relationships without a confidence value can be interpreted at the discretion of each project.
      type: number
      format: float
      minimum: 0
      maximum: 1
    enrichedRelationshipResponse:
      type: object
      allOf:
      - $ref: '#/components/schemas/relationship'
      - $ref: '#/components/schemas/persistedObject'
      - $ref: '#/components/schemas/enrichedRelationship'
    SequenceValueTypeEnum:
      type: string
      description: What type the datapoints in a column will have. DOUBLE is restricted to the range [-1E100, 1E100]
      default: DOUBLE
      enum:
      - STRING
      - DOUBLE
      - LONG
    InternalEvent:
      type: object
      properties:
        externalId:
          $ref: '#/components/schemas/CogniteExternalId'
        dataSetId:
          description: The id of the dataset this event belongs to.
          allOf:
          - $ref: '#/components/schemas/CogniteInternalId'
        startTime:
          $ref: '#/components/schemas/EpochTimestamp'
        endTime:
          $ref: '#/components/schemas/EpochTimestamp'
        type:
          $ref: '#/components/schemas/EventType'
        subtype:
          $ref: '#/components/schemas/EventSubType'
        description:
          maxLength: 500
          type: string
          description: Textual description of the event.
        metadata:
          $ref: '#/components/schemas/EventMetadata'
        assetIds:
          type: array
          uniqueItems: true
          description: Asset IDs of equipment that this event relates to.
          items:
            $ref: '#/components/schemas/CogniteInternalId'
        source:
          maxLength: 128
          type: string
          description: The source of this event.
      description: An event represents something that happened at a given interval in time, for example, a failure, a work order, etc.
    externalIdObject:
      type: object
      properties:
        externalId:
          $ref: '#/components/schemas/relationshipExternalId'
      required:
      - externalId
    relationshipResponseWrapper:
      type: object
      required:
      - items
      properties:
        items:
          minItems: 1
          maxItems: 1000
          type: array
          items:
            $ref: '#/components/schemas/relationshipResponse'
    relationshipUpdate:
      type: object
      required:
      - externalId
      - update
      properties:
        externalId:
          $ref: '#/components/schemas/relationshipExternalId'
        update:
          $ref: '#/components/schemas/relationshipUpdateContent'
    dataSetId:
      description: The ID of the dataset the relationship belongs to.
      allOf:
      - $ref: '#/components/schemas/CogniteInternalId'
    CogniteExternalId:
      description: The external ID provided by the client. Must be unique for the resource type.
      type: string
      maxLength: 255
      example: my.known.id
    GetSequenceDTO:
      type: object
      required:
      - id
      - columns
      - createdTime
      - lastUpdatedTime
      description: Information about the sequence stored in the database.
      properties:
        id:
          type: integer
          description: Unique Cognite-provided identifier for the sequence.
          example: 1
          format: int64
          readOnly: true
        name:
          type: string
          example: Any relevant name
          description: Name of the sequence.
        description:
          type: string
          example: Optional description
          description: Description of the sequence.
        assetId:
          type: integer
          example: 1221123111
          description: Optional asset this sequence is associated with.
          format: int64
        externalId:
          $ref: '#/components/schemas/CogniteExternalId'
        metadata:
          type: object
          example:
            extracted-by: cognite
          description: Custom, application specific metadata. String key -> String value. Maximum length of key is 128 bytes, up to 256 key-value pairs, up to a total size of 10000 bytes across all keys and values.
          additionalProperties:
            type: string
        colum

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