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.

OpenAPI Specification

cognite-relationships-api-openapi.yml Raw ↑
openapi: 3.1.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:
    GetTimeSeriesMetadataDTO:
      required:
      - id
      - isString
      - isStep
      - type
      - createdTime
      - lastUpdatedTime
      type: object
      properties:
        id:
          $ref: '#/components/schemas/CogniteInternalId'
        externalId:
          maxLength: 255
          type: string
          description: The externally supplied ID for the time series.
        instanceId:
          $ref: '#/components/schemas/CogniteInstanceId'
        name:
          maxLength: 255
          type: string
          description: The display short name of the time series.
        isString:
          type: boolean
          description: 'True if the time series contains string values; false if it contains numeric values.

            '
        type:
          $ref: '#/components/schemas/TimeSeriesType'
        metadata:
          $ref: '#/components/schemas/TimeSeriesMetadata'
        unit:
          maxLength: 32
          type: string
          description: The physical unit of the time series (free-text field)
        unitExternalId:
          maxLength: 64
          type: string
          description: The physical unit of the time series as [represented in the unit catalog](<https://docs.cognite.com/dev/concepts/resource_types/units/>).
        assetId:
          description: Asset ID of equipment linked to this time series.
          allOf:
          - $ref: '#/components/schemas/CogniteInternalId'
        isStep:
          type: boolean
          description: Defines whether the time series is a step series or not.
        description:
          maxLength: 1000
          type: string
          description: Description of the time series.
        securityCategories:
          type: array
          description: The required security categories to access this time series.
          items:
            type: integer
            description: Security categories required to access this time series.
            format: int64
        dataSetId:
          $ref: '#/components/schemas/DataSetId'
        createdTime:
          $ref: '#/components/schemas/EpochTimestamp'
        lastUpdatedTime:
          $ref: '#/components/schemas/EpochTimestamp'
    sourceType:
      description: The resource type of the relationship source. Must be one of the specified values.
      allOf:
      - $ref: '#/components/schemas/resourceType'
    LineString:
      type: object
      required:
      - type
      - coordinates
      properties:
        type:
          type: string
          enum:
          - LineString
        coordinates:
          $ref: '#/components/schemas/LineStringCoordinates'
    resourceType:
      type: string
      enum:
      - asset
      - timeSeries
      - file
      - event
      - sequence
    CogniteInternalId:
      description: A server-generated ID for the object.
      type: integer
      minimum: 1
      maximum: 9007199254740991
      format: int64
    LabelsAddRemove:
      type: object
      properties:
        add:
          type: array
          description: A list of the labels to add to a resource.
          minItems: 0
          maxItems: 10
          uniqueItems: true
          items:
            $ref: '#/components/schemas/Label'
        remove:
          type: array
          description: A list of the labels to remove from a resource.
          minItems: 0
          maxItems: 10
          uniqueItems: true
          items:
            $ref: '#/components/schemas/Label'
    InternalId:
      type: object
      required:
      - id
      properties:
        id:
          $ref: '#/components/schemas/CogniteInternalId'
    relationshipResponseWrapper:
      type: object
      required:
      - items
      properties:
        items:
          minItems: 1
          maxItems: 1000
          type: array
          items:
            $ref: '#/components/schemas/relationshipResponse'
    relationshipRequestWrapper:
      type: object
      required:
      - items
      properties:
        items:
          type: array
          minItems: 1
          maxItems: 1000
          items:
            $ref: '#/components/schemas/relationship'
    resourceExternalId:
      type: string
      minLength: 1
      maxLength: 255
    resourceReferenceWithExternalId:
      type: object
      required:
      - resource
      - resourceId
      properties:
        type:
          $ref: '#/components/schemas/resourceType'
        externalId:
          $ref: '#/components/schemas/resourceExternalId'
    GetSequenceColumnDTO:
      type: object
      required:
      - id
      - valueType
      - createdTime
      - lastUpdatedTime
      description: Information about a column stored in the database.
      properties:
        name:
          type: string
          example: depth
          description: Human readable name of the column.
        externalId:
          type: string
          example: DPS1
          description: User provided column identifier (unique for a given sequence).
        description:
          type: string
          example: Optional description
          description: Description of the column.
        valueType:
          $ref: '#/components/schemas/SequenceValueTypeEnum'
        metadata:
          type: object
          example:
            extracted-by: cognite
          description: Custom, application specific metadata. String key -> String value.
          additionalProperties:
            type: string
        createdTime:
          type: integer
          example: 100000000000
          description: Time when this asset was created in CDF in milliseconds since Jan 1, 1970.
          format: int64
          readOnly: true
        lastUpdatedTime:
          type: integer
          example: 100000000000
          description: The last time this asset was updated in CDF, in milliseconds since Jan 1, 1970.
          format: int64
          readOnly: true
    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
        columns:
          type: array
          description: List of column definitions.
          items:
            $ref: '#/components/schemas/GetSequenceColumnDTO'
        createdTime:
          type: integer
          example: 100000000000
          description: Time when this sequence was created in CDF in milliseconds since Jan 1, 1970.
          format: int64
          readOnly: true
        lastUpdatedTime:
          type: integer
          example: 100000000000
          description: The last time this sequence was updated in CDF, in milliseconds since Jan 1, 1970.
          format: int64
          readOnly: true
        dataSetId:
          type: integer
          format: int64
          description: Data set this sequence belongs to.
          example: 2718281828459
    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.
    AssetSource:
      type: string
      maxLength: 128
      description: The source of the asset.
    cursorObject:
      type: object
      properties:
        nextCursor:
          type: string
          description: The cursor to get the next page of results (if available).
    FileSource:
      maxLength: 128
      type: string
      description: The source of the file.
    endTime:
      description: The time, in milliseconds since Jan. 1, 1970, when the relationship became inactive. If there is no endTime, the relationship is active from startTime until the present or any point in the future. If endTime and startTime are set, the endTime must be greater than startTime.
      allOf:
      - $ref: '#/components/schemas/EpochTimestamp'
    AssetName:
      type: string
      description: The name of the asset.
      minLength: 1
      maxLength: 140
    updateRelationshipWrapper:
      type: object
      required:
      - items
      properties:
        items:
          type: array
          minItems: 1
          maxItems: 1000
          items:
            $ref: '#/components/schemas/relationshipUpdate'
    GeoLocation:
      description: Geographic metadata.
      required:
      - type
      - geometry
      type: object
      properties:
        type:
          type: string
          enum:
          - Feature
          description: One of the GeoJSON types. Currently only the 'Feature' type is supported.
        geometry:
          $ref: '#/components/schemas/GeoLocationGeometry'
        properties:
          type: object
          description: Additional properties in a String key -> Object value format.
    updateEndTime:
      title: updateEndTime
      type: object
      oneOf:
      - $ref: '#/components/schemas/setEndTime'
      - $ref: '#/components/schemas/RemoveField'
    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'
    Partition:
      description: 'Splits the data set into `N` partitions.

        The attribute is specified as a "M/N" string, where `M` is a natural number in the interval of `[1, N]`.

        You need to follow the cursors within each partition in order to receive all the data.


        To prevent unexpected problems and maximize read throughput, you should at most use 10 (N <= 10) partitions.


        When using more than 10 partitions, CDF may reduce the number of partitions silently.

        For example, CDF may reduce the number of partitions to `K = 10` so if you specify an `X/N` `partition` value where `X = 8` and `N = 20` - i.e. `"partition": "8/20"`- then

        CDF will change `N` to `N = K = 10` and process the request.

        But if you  specify the `X/N` `partition` value where `X = 11` (`X > K`) and `N = 20` - i.e. `"partition": "11/20"`- then

        CDF will reply with an empty result list and no cursor in the response.\


        In future releases of the resource APIs, Cognite may reject requests if you specify more than 10 partitions.

        When Cognite enforces this behavior, the requests will result in a 400 Bad Request status.

        '
      type: string
      example: 1/10
    updateSourceType:
      type: object
      required:
      - set
      properties:
        set:
          $ref: '#/components/schemas/sourceType'
      description: Set a new value for the relationship source type.
    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.
    LabelContainsAllFilter:
      type: object
      required:
      - containsAll
      properties:
        containsAll:
          description: The resource item contains at least all the listed labels.
          type: array
          minItems: 1
          maxItems: 10
          items:
            $ref: '#/components/schemas/Label'
    updateTargetType:
      type: object
      required:
      - set
      properties:
        set:
          $ref: '#/components/schemas/targetType'
      description: Set a new value for the relationship target type.
    byIdsRequest:
      type: object
      required:
      - items
      properties:
        items:
          $ref: '#/components/schemas/itemsArray'
        ignoreUnknownIds:
          $ref: '#/components/schemas/ignoreUnknownIds'
        fetchResources:
          $ref: '#/components/schemas/fetchResources'
    LabelList:
      type: array
      description: A list of the labels associated with this resource item.
      minItems: 0
      maxItems: 10
      uniqueItems: true
      items:
        $ref:

# --- 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