From 210ca61935f67b5cea6cb4a0efde803740d61d49 Mon Sep 17 00:00:00 2001 From: Christian Barth Roligheten Date: Mon, 21 Oct 2024 17:04:58 +0200 Subject: [PATCH] refactor(core): update autogenerated types (#1164) Note: Manually override annotation types that due to being autogenerated from paths got the "cogmono" prefix. We should address this in the future. --- .../stable/src/.cognite-openapi-snapshot.json | 41168 ++++++++++------ .../stable/src/api/annotations/types.gen.ts | 24 +- packages/stable/src/api/vision/types.gen.ts | 23 +- packages/stable/src/exports.gen.ts | 3 + 4 files changed, 26024 insertions(+), 15194 deletions(-) diff --git a/packages/stable/src/.cognite-openapi-snapshot.json b/packages/stable/src/.cognite-openapi-snapshot.json index be15a30695..a302b5d291 100644 --- a/packages/stable/src/.cognite-openapi-snapshot.json +++ b/packages/stable/src/.cognite-openapi-snapshot.json @@ -25,10 +25,12 @@ "asia-northeast1-1", "gc-dsm-gp-001" ], - "default": "api" + "default": "api", + "description": "The CDF cluster to connect to" }, "project": { - "default": "publicdata" + "default": "publicdata", + "description": "The CDF project name." } } } @@ -42,6 +44,7 @@ "description": "The URL for the CDF cluster to connect to", "variables": { "cluster": { + "description": "The CDF cluster to connect to", "default": "api", "enum": [ "api", @@ -92,7 +95,7 @@ "Assets" ], "summary": "List assets", - "description": "List all assets, or only the assets matching the specified query.\n\n### Request throttling\nThis endpoint is meant for data analytics/exploration usage and is not suitable for high load data retrieval usage. \nIt is a subject of the new throttling schema (limited request rate and concurrency).\nPlease check [Assets resource description](../../) for more information.", + "description": "List all assets, or only the assets matching the specified query.\n\n### Request throttling\nThis endpoint is meant for data analytics/exploration usage and is not suitable for high load data retrieval usage.\nIt is a subject of the new throttling schema (limited request rate and concurrency).\nPlease check [Assets resource description](../../) for more information.", "operationId": "getAssets", "parameters": [ { @@ -339,7 +342,7 @@ "Assets" ], "summary": "Filter assets", - "description": "Retrieve a list of assets in the same project. This operation supports pagination by cursor.\nApply Filtering and Advanced filtering criteria to select a subset of assets.\n\n### Advanced filtering\nAdvanced filter lets you create complex filtering expressions that combine simple operations,\nsuch as `equals`, `prefix`, `exists`, etc., using boolean operators `and`, `or`, and `not`.\nIt applies to basic fields as well as metadata.\n\nSee the `advancedFilter` attribute in the example.\n\nSee more information about filtering DSL [here](https://docs.cognite.com/dev/concepts/resource_filtering_dsl/ \"filtering DSL\").\n\n#### Supported leaf filters\n\n| Leaf filter | Supported fields | Description |\n|----------------|------------------------------------|--------------|\n| `containsAll` | Array type fields | Only includes results which contain all of the specified values.
`{\"containsAll\": {\"property\": [\"property\"], \"values\": [1, 2, 3]}}` |\n| `containsAny` | Array type fields | Only includes results which contain at least one of the specified values.
`{\"containsAny\": {\"property\": [\"property\"], \"values\": [1, 2, 3]}}` |\n| `equals` | Non-array type fields | Only includes results that are equal to the specified value.
`{\"equals\": {\"property\": [\"property\"], \"value\": \"example\"}}` |\n| `exists` | All fields | Only includes results where the specified property exists (has value).
`{\"exists\": {\"property\": [\"property\"]}}` |\n| `in` | Non-array type fields | Only includes results that are equal to one of the specified values.
`{\"in\": {\"property\": [\"property\"], \"values\": [1, 2, 3]}}` |\n| `prefix` | String type fields | Only includes results which start with the specified value.
`{\"prefix\": {\"property\": [\"property\"], \"value\": \"example\"}}` |\n| `range` | Non-array type fields | Only includes results that fall within the specified range.
`{\"range\": {\"property\": [\"property\"], \"gt\": 1, \"lte\": 5}}`
Supported operators: `gt`, `lt`, `gte`, `lte` |\n| `search` | `[\"name\"]`, `[\"description\"]` | Introduced to provide functional parity with /assets/search endpoint.
`{\"search\": {\"property\": [\"property\"], \"value\": \"example\"}}` |\n\n##### Search\nThe `search` leaf filter provides functional parity with the `/assets/search` endpoint.\nIt's available only for the `[\"description\"]` and `[\"name\"]` properties. When specifying only this filter with no explicit ordering,\nbehavior is the same as of the `/assets/search/` endpoint without specifying filters.\nExplicit sorting overrides the default ordering by relevance.\nIt's possible to use the `search` leaf filter as any other leaf filter for creating complex queries.\n\nSee the `search` filter in the `advancedFilter` attribute in the example.\n\n#### advancedFilter attribute limits\n- filter query max depth: 10\n- filter query max number of clauses: 100\n- `and` and `or` clauses must have at least one element\n- `property` array of each leaf filter has the following limitations:\n - number of elements in the array is in the range [1, 2]\n - elements must not be blank\n - each element max length is 128 symbols\n - property array must match one of the existing properties (static or dynamic metadata).\n- `containsAll`, `containsAny`, and `in` filter `values` array size must be in the range [1, 100]\n- `containsAll`, `containsAny`, and `in` filter `values` array must contain elements of a primitive type (number, string)\n- `range` filter must have at least one of `gt`, `gte`, `lt`, `lte` attributes.\n But `gt` is mutually exclusive to `gte`, while `lt` is mutually exclusive to `lte`.\n At least one of the bounds must be specified.\n- `gt`, `gte`, `lt`, `lte` in the `range` filter must be a primitive value\n- `search` filter `value` must not be blank and the length must be in the range [1, 128]\n- filter query may have maximum 2 search leaf filters\n- maximum leaf filter string value length is different depending on the property the filter is using:\n - `externalId` - 255\n - `name` - 128 for the `search` filter and 255 for other filters\n - `description` - 128 for the `search` filter and 255 for other filters\n - `labels` item - 255\n - `source` - 128\n - any `metadata` key - 128 \n\n### Sorting\nBy default, assets are sorted by `id` in the ascending order.\nUse the `search` leaf filter to sort the results by relevance.\nSorting by other fields can be explicitly requested. The `order` field is optional \nand defaults to `desc` for `_score_` and `asc` for all other fields.\nThe `nulls` field is optional and defaults to `auto`. `auto` is translated to \n`last` for the `asc` order and to `first` for the `desc` order by the service.\nPartitions are done independently of sorting; there's no guarantee of the sort order between elements from different partitions.\n\nSee the `sort` attribute in the example.\n\n#### Null values\nIn case the `nulls` attribute has the `auto` value or the attribute isn't specified,\nnull (missing) values are considered to be bigger than any other values.\nThey are placed last when sorting in the `asc` order and first when sorting in `desc`.\nOtherwise, missing values are placed according to the `nulls` attribute (last or first), and their placement doesn't depend on the `order` value.\nValues, such as empty strings, aren't considered as nulls.\n\n#### Sorting by score\nUse a special sort property `_score_` when sorting by relevance. \nThe more filters a particular asset matches, the higher its score is. This can be useful,\nfor example, when building UIs. Let's assume we want exact matches to be be displayed above matches by\nprefix as in the request below. An asset named `pump` will match both `equals` and `prefix`\nfilters and, therefore, have higher score than assets with names like `pump valve` that match only `prefix` filter.\n\n```\n\"advancedFilter\" : {\n \"or\" : [\n {\n \"equals\": {\n \"property\": [\"name\"], \n \"value\": \"pump\"\n }\n },\n {\n \"prefix\": {\n \"property\": [\"name\"], \n \"value\": \"pump\"\n }\n }\n ]\n},\n\"sort\": [\n {\n \"property\" : [\"_score_\"]\n }\n]\n```\n\n### Request throttling\nThis endpoint is meant for data analytics/exploration usage and is not suitable for high load data retrieval usage.\nIt is a subject of the new throttling schema (limited request rate and concurrency).\nPlease check [Assets resource description](../../) for more information.", + "description": "Retrieve a list of assets in the same project. This operation supports pagination by cursor.\nApply Filtering and Advanced filtering criteria to select a subset of assets.\n\n### Advanced filtering\nAdvanced filter lets you create complex filtering expressions that combine simple operations,\nsuch as `equals`, `prefix`, `exists`, etc., using boolean operators `and`, `or`, and `not`.\nIt applies to basic fields as well as metadata.\n\nSee the `advancedFilter` attribute in the example.\n\nSee more information about filtering DSL [here](https://docs.cognite.com/dev/concepts/resource_filtering_dsl/ \"filtering DSL\").\n\n#### Supported leaf filters\n\n| Leaf filter | Supported fields | Description |\n|----------------|------------------------------------|--------------|\n| `containsAll` | Array type fields | Only includes results which contain all of the specified values.
`{\"containsAll\": {\"property\": [\"property\"], \"values\": [1, 2, 3]}}` |\n| `containsAny` | Array type fields | Only includes results which contain at least one of the specified values.
`{\"containsAny\": {\"property\": [\"property\"], \"values\": [1, 2, 3]}}` |\n| `equals` | Non-array type fields | Only includes results that are equal to the specified value.
`{\"equals\": {\"property\": [\"property\"], \"value\": \"example\"}}` |\n| `exists` | All fields | Only includes results where the specified property exists (has value).
`{\"exists\": {\"property\": [\"property\"]}}` |\n| `in` | Non-array type fields | Only includes results that are equal to one of the specified values.
`{\"in\": {\"property\": [\"property\"], \"values\": [1, 2, 3]}}` |\n| `prefix` | String type fields | Only includes results which start with the specified value.
`{\"prefix\": {\"property\": [\"property\"], \"value\": \"example\"}}` |\n| `range` | Non-array type fields | Only includes results that fall within the specified range.
`{\"range\": {\"property\": [\"property\"], \"gt\": 1, \"lte\": 5}}`
Supported operators: `gt`, `lt`, `gte`, `lte` |\n| `search` | `[\"name\"]`, `[\"description\"]` | Introduced to provide functional parity with /assets/search endpoint.
`{\"search\": {\"property\": [\"property\"], \"value\": \"example\"}}` |\n\n##### Search\nThe `search` leaf filter provides functional parity with the `/assets/search` endpoint.\nIt's available only for the `[\"description\"]` and `[\"name\"]` properties. When specifying only this filter with no explicit ordering,\nbehavior is the same as of the `/assets/search/` endpoint without specifying filters.\nExplicit sorting overrides the default ordering by relevance.\nIt's possible to use the `search` leaf filter as any other leaf filter for creating complex queries.\n\nSee the `search` filter in the `advancedFilter` attribute in the example.\n\n#### advancedFilter attribute limits\n- filter query max depth: 10\n- filter query max number of clauses: 100\n- `and` and `or` clauses must have at least one element\n- `property` array of each leaf filter has the following limitations:\n - number of elements in the array is in the range [1, 2]\n - elements must not be blank\n - each element max length is 128 symbols\n - property array must match one of the existing properties (static or dynamic metadata).\n- `containsAll`, `containsAny`, and `in` filter `values` array size must be in the range [1, 100]\n- `containsAll`, `containsAny`, and `in` filter `values` array must contain elements of a primitive type (number, string)\n- `range` filter must have at least one of `gt`, `gte`, `lt`, `lte` attributes.\n But `gt` is mutually exclusive to `gte`, while `lt` is mutually exclusive to `lte`.\n At least one of the bounds must be specified.\n- `gt`, `gte`, `lt`, `lte` in the `range` filter must be a primitive value\n- `search` filter `value` must not be blank and the length must be in the range [1, 128]\n- filter query may have maximum 2 search leaf filters\n- maximum leaf filter string value length is different depending on the property the filter is using:\n - `externalId` - 255\n - `name` - 128 for the `search` filter and 255 for other filters\n - `description` - 128 for the `search` filter and 255 for other filters\n - `labels` item - 255\n - `source` - 128\n - any `metadata` key - 128\n\n### Sorting\nBy default, assets are sorted by `id` in the ascending order.\nUse the `search` leaf filter to sort the results by relevance.\nSorting by other fields can be explicitly requested. The `order` field is optional\nand defaults to `desc` for `_score_` and `asc` for all other fields.\nThe `nulls` field is optional and defaults to `auto`. `auto` is translated to\n`last` for the `asc` order and to `first` for the `desc` order by the service.\nPartitions are done independently of sorting; there's no guarantee of the sort order between elements from different partitions.\n\nSee the `sort` attribute in the example.\n\n#### Null values\nIn case the `nulls` attribute has the `auto` value or the attribute isn't specified,\nnull (missing) values are considered to be bigger than any other values.\nThey are placed last when sorting in the `asc` order and first when sorting in `desc`.\nOtherwise, missing values are placed according to the `nulls` attribute (last or first), and their placement doesn't depend on the `order` value.\nValues, such as empty strings, aren't considered as nulls.\n\n#### Sorting by score\nUse a special sort property `_score_` when sorting by relevance.\nThe more filters a particular asset matches, the higher its score is. This can be useful,\nfor example, when building UIs. Let's assume we want exact matches to be be displayed above matches by\nprefix as in the request below. An asset named `pump` will match both `equals` and `prefix`\nfilters and, therefore, have higher score than assets with names like `pump valve` that match only `prefix` filter.\n\n```\n\"advancedFilter\" : {\n \"or\" : [\n {\n \"equals\": {\n \"property\": [\"name\"],\n \"value\": \"pump\"\n }\n },\n {\n \"prefix\": {\n \"property\": [\"name\"],\n \"value\": \"pump\"\n }\n }\n ]\n},\n\"sort\": [\n {\n \"property\" : [\"_score_\"]\n }\n]\n```\n\n### Request throttling\nThis endpoint is meant for data analytics/exploration usage and is not suitable for high load data retrieval usage.\nIt is a subject of the new throttling schema (limited request rate and concurrency).\nPlease check [Assets resource description](../../) for more information.", "operationId": "listAssets", "requestBody": { "content": { @@ -389,7 +392,7 @@ "Assets" ], "summary": "Aggregate assets", - "description": "The aggregation API lets you compute aggregated results on assets, \nsuch as getting the count of all assets in a project, checking\ndifferent names and descriptions of assets in your project, etc.\n\n#### Aggregate filtering\n##### Filter (filter & advancedFilter) data for aggregates\nFilters behave the same way as for the `Filter assets` endpoint.\nIn text properties, the values are aggregated in a case-insensitive manner.\n\n##### aggregateFilter to filter aggregate results\n`aggregateFilter` works similarly to `advancedFilter` but always applies to aggregate properties.\nFor instance, in case of an aggregation for the `source` property, only the values (aka buckets) of the `source` property can be filtered out. \n\n### Request throttling\nThis endpoint is meant for data analytics/exploration usage and is not suitable for high load data retrieval usage. \nIt is a subject of the new throttling schema (limited request rate and concurrency).\nPlease check [Assets resource description](../../) for more information.", + "description": "The aggregation API lets you compute aggregated results on assets,\nsuch as getting the count of all assets in a project, checking\ndifferent names and descriptions of assets in your project, etc.\n\n#### Aggregate filtering\n##### Filter (filter & advancedFilter) data for aggregates\nFilters behave the same way as for the `Filter assets` endpoint.\nIn text properties, the values are aggregated in a case-insensitive manner.\n\n##### aggregateFilter to filter aggregate results\n`aggregateFilter` works similarly to `advancedFilter` but always applies to aggregate properties.\nFor instance, in case of an aggregation for the `source` property, only the values (aka buckets) of the `source` property can be filtered out.\n\n### Request throttling\nThis endpoint is meant for data analytics/exploration usage and is not suitable for high load data retrieval usage.\\\nIt is a subject of the new throttling schema (limited request rate and concurrency).\nPlease check [Assets resource description](../../) for more information.", "operationId": "aggregateAssets", "requestBody": { "content": { @@ -543,7 +546,7 @@ "Assets" ], "summary": "Search assets", - "description": "Fulltext search for assets based on result relevance. Primarily meant\nfor human-centric use-cases, not for programs, since matching and\nordering may change over time. Additional filters can also be\nspecified. This operation doesn't support pagination.\n\n### Request throttling\nThis endpoint is meant for data analytics/exploration usage and is not suitable for high load data retrieval usage. \nIt is a subject of the new throttling schema (limited request rate and concurrency).\nPlease check [Assets resource description](../../) for more information.", + "description": "Fulltext search for assets based on result relevance. Primarily meant\nfor human-centric use-cases, not for programs, since matching and\nordering may change over time. Additional filters can also be\nspecified. This operation doesn't support pagination.\n\n### Request throttling\nThis endpoint is meant for data analytics/exploration usage and is not suitable for high load data retrieval usage.\nIt is a subject of the new throttling schema (limited request rate and concurrency).\nPlease check [Assets resource description](../../) for more information.", "operationId": "searchAssets", "requestBody": { "description": "Search query", @@ -590,7 +593,7 @@ "Assets" ], "summary": "Delete assets", - "description": "Delete assets. By default, `recursive=false` and the request would fail if attempting to delete assets that are referenced as parent by other assets. \nTo delete such assets and all its descendants, set recursive to true.\nThe limit of the request does not include the number of descendants that are deleted.\n\n### Request throttling\nThis endpoint is a subject of the new throttling schema (limited request rate and concurrency).\nPlease check [Assets resource description](../../) for more information.", + "description": "Delete assets. By default, `recursive=false` and the request would fail if attempting to delete assets that are referenced as parent by other assets.\nTo delete such assets and all its descendants, set recursive to true.\nThe limit of the request does not include the number of descendants that are deleted.\n\n### Request throttling\nThis endpoint is a subject of the new throttling schema (limited request rate and concurrency).\nPlease check [Assets resource description](../../) for more information.", "operationId": "deleteAssets", "requestBody": { "content": { @@ -805,7 +808,7 @@ "Data models" ], "summary": "Create or update data models", - "description": "Add or update (upsert) data models. For unchanged data model specifications, the operation completes without making any changes. We will not update the ```lastUpdatedTime``` value for models that remain unchanged.", + "description": "Add or update (upsert) data models. For unchanged data model specifications, the operation completes without making any changes. We will not update the ```lastUpdatedTime``` value for models that remain unchanged.", "operationId": "createDataModels", "requestBody": { "description": "List of data models to add", @@ -951,7 +954,7 @@ "Data models" ], "summary": "Delete data models", - "description": "Delete one or more data models. Currently limited to 100 models at a time. This does not delete the views, nor the containers they reference.", + "description": "Delete one or more data models. Currently limited to 100 models at a time. This does not delete the views, nor the containers they reference.", "operationId": "deleteDataModels", "requestBody": { "description": "List of references to data models you wish to delete", @@ -1136,7 +1139,7 @@ "Views" ], "summary": "Delete views", - "description": "Delete one or more views. Currently limited to 100 views at a time. The service cannot delete a view referenced by a data model.", + "description": "Delete one or more views. Currently limited to 100 views at a time.", "operationId": "deleteViews", "requestBody": { "description": "List of references to views you want to delete.", @@ -1175,7 +1178,7 @@ "Containers" ], "summary": "Create or update containers", - "description": "Add or update (upsert) containers. For unchanged container specifications, the operation completes without making any changes. We will not update the ```lastUpdatedTime``` value for containers that remain unchanged.", + "description": "Add or update (upsert) containers. For unchanged container specifications, the operation completes without making any changes. We will not update the ```lastUpdatedTime``` value for containers that remain unchanged.", "operationId": "ApplyContainers", "requestBody": { "description": "Containers to add or update.", @@ -1303,7 +1306,7 @@ "Containers" ], "summary": "Delete containers", - "description": "Delete one or more containers. Currently limited to 100 containers at a time. You cannot delete a container when one or more data model(s) or view(s) references it.", + "description": "Delete one or more containers. Currently limited to 100 containers at a time.", "operationId": "deleteContainers", "requestBody": { "description": "List of the spaces and external-ids for the containers you want to delete.", @@ -1414,13 +1417,44 @@ ] } }, + "/models/containers/inspect": { + "post": { + "tags": [ + "Containers" + ], + "summary": "Inspect containers", + "operationId": "containerInspect", + "requestBody": { + "description": "Which containers to inspect and the inspection operations to run.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ContainerInspectRequest" + } + } + }, + "required": true + }, + "x-capability": [ + "DataModelsAcl:READ" + ], + "responses": { + "200": { + "$ref": "#/components/responses/ContainerInspectResponse" + }, + "400": { + "$ref": "#/components/responses/ErrorResponse" + } + } + } + }, "/models/instances": { "post": { "tags": [ "Instances" ], "summary": "Create or update nodes/edges", - "description": "Create or update nodes and edges in a transaction. The ```items``` field of the payload is an array of objects\nwhere each object describes a node or an edge to create, patch or replace. The ```instanceType``` field of\neach object must be ```node``` or ```edge``` and determines how the rest of the object is interpreted.\n\nThis operation is currently limited to 1000 nodes and/or edges at a time.\n\nIndividual nodes and edges are uniquely identified by their externalId and space.\n\nFor more details on ingesting instances into a graph, see [Ingesting instances] \n(https://docs.cognite.com/cdf/dm/dm_concepts/dm_ingestion).\n\n### Creating new instances\n\nWhen there is no node or edge with the given externalId in the given space, a node will be created and the\nproperties provided for each of the containers or views in the ```sources``` array will be populated for the\nnode/edge. Nodes can also be created implicitly when an edge between them is created (if\n```autoCreateStartNodes``` and/or ``` autoCreateEndNodes``` is set), or when a direct relation\nproperty is set, the target node does not exist and ```autoCreateDirectRelations``` is set.\n\nTo add a node or edge, the user must have capabilities to access (write to) both the view(s) referenced in\n```sources``` and the container(s) underlying these views, as well as any directly referenced containers.\n\n### Updating (patching) or replacing instances\n\nWhen a node or edge (instance) with the given externalId already exists in a space, the\nproperties named in the ```sources``` field will be written to the instance. Other properties will remain\nunchanged. To replace the whole set of properties for an instance (a node or an edge) rather than patch the\ninstance, set the ```replace``` parameter to ```true```.\n\nIf you use a writable view to update properties (that is, the source you are referring to in ```sources```\nis a view), you must have write access to the view as well as all of its backing containers.\n\n### No-change patch operations\nWhen a node/edge item has no changes compared to the existing instance - that is, when the supplied property\nvalues are equal to the corresponding values in the existing node/edge, the node/edge will stay unchanged.\nIn this case, the ```lastUpdatedTime``` values for the nodes/edges in question will not change.\n", + "description": "Create or update nodes and edges in a transaction. The ```items``` field of the payload is an array of objects\nwhere each object describes a node or an edge to create, patch or replace. The ```instanceType``` field of\neach object must be ```node``` or ```edge``` and determines how the rest of the object is interpreted.\n\nThis operation is currently limited to 1000 nodes and/or edges at a time.\n\nIndividual nodes and edges are uniquely identified by their externalId and space.\n\nFor more details on ingesting instances into a graph, see [Ingesting instances]\n(https://docs.cognite.com/cdf/dm/dm_concepts/dm_ingestion).\n\n### Creating new instances\n\nWhen there is no node or edge with the given externalId in the given space, a node will be created and the\nproperties provided for each of the containers or views in the ```sources``` array will be populated for the\nnode/edge. Nodes can also be created implicitly when an edge between them is created (if\n```autoCreateStartNodes``` and/or ``` autoCreateEndNodes``` is set), or when a direct relation\nproperty is set, the target node does not exist and ```autoCreateDirectRelations``` is set.\n\nTo add a node or edge, the user must have capabilities to access (write to) both the view(s) referenced in\n```sources``` and the container(s) underlying these views, as well as any directly referenced containers.\n\n### Updating (patching) or replacing instances\n\nWhen a node or edge (instance) with the given externalId already exists in a space, the\nproperties named in the ```sources``` field will be written to the instance. Other properties will remain\nunchanged. To replace the whole set of properties for an instance (a node or an edge) rather than patch the\ninstance, set the ```replace``` parameter to ```true```.\n\nNote: When using ```replace``` as ```true``` it will replace any omitted property to either it's default\nvalue as defined on the container(s) or null if no default value is set. All properties on the related\ncontainer(s) referenced in the provided ```sources``` view(s) will be replaced, so even when the provided\nview(s) only contains a subset of properties from a container all the properties in that container for that\ninstance will be replaced. If the underlying container(s) have any required properties that are not provided,\nthe operation will fail.\n\nIf you use a writable view to update properties (that is, the source you are referring to in ```sources```\nis a view), you must have write access to the view as well as all of its backing containers.\n\n### No-change patch operations\nWhen a node/edge item has no changes compared to the existing instance - that is, when the supplied property\nvalues are equal to the corresponding values in the existing node/edge, the node/edge will stay unchanged.\nIn this case, the ```lastUpdatedTime``` values for the nodes/edges in question will not change.\n", "operationId": "applyNodeAndEdges", "requestBody": { "description": "Nodes/edges to add or update.", @@ -1472,7 +1506,7 @@ "description": "Filter the instances - nodes and edges - in a project.", "operationId": "advancedListInstance", "requestBody": { - "description": "Filter based on the instance type, the name, the external-ids, and on properties. The filter supports sorting and pagination. The instances must have data in all the views referenced by the sources field. Properties for up to 10 views can be retrieved in one query.", + "description": "Filter based on the instance type, the name, the external-ids, and on properties. The filter supports sorting and pagination. The instances must have data in all the views referenced by the sources field. Properties for up to 10 views can be retrieved in one query.", "content": { "application/json": { "schema": { @@ -1547,7 +1581,7 @@ "Instances" ], "summary": "Search for nodes/edges", - "description": "Search text fields in views for nodes or edge(s). The service will return up to 1000 results. This operation orders the results by relevance, across the specified spaces.", + "description": "Search text fields in views for nodes or edge(s). The service will return up to 1000 results. This operation orders the results by relevance, across the specified spaces.", "operationId": "searchInstances", "requestBody": { "description": "The search specification.", @@ -1586,7 +1620,7 @@ "Instances" ], "summary": "Aggregate data across nodes/edges", - "description": "Aggregate data for nodes or edges in a project. You can use an optional query or filter specification to limit the result.", + "description": "Aggregate data for nodes or edges in a project. You can use an optional query or filter specification to limit the result.", "operationId": "aggregateInstances", "requestBody": { "description": "Aggregation specification.", @@ -1703,7 +1737,7 @@ "Instances" ], "summary": "Sync nodes/edges", - "description": "Subscribe to changes for nodes and edges in a project, matching a supplied filter. This endpoint will always return a ```NextCursor```. The sync specification mirrors the query interface, but sorting is not currently supported. For more information, see [Query language](https://docs.cognite.com/cdf/dm/dm_concepts/dm_querying).", + "description": "Subscribe to changes for nodes and edges in a project, matching a supplied filter. This endpoint will always return a ```NextCursor```. The sync specification mirrors the query interface, but sorting is not currently supported. For more information, see [Query language](https://docs.cognite.com/cdf/dm/dm_concepts/dm_querying).", "operationId": "syncContent", "requestBody": { "description": "Change filter specification", @@ -1736,6 +1770,37 @@ ] } }, + "/models/instances/inspect": { + "post": { + "tags": [ + "Instances" + ], + "summary": "Inspect instances", + "operationId": "instanceInspect", + "requestBody": { + "description": "Change filter specification", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InstanceInspectRequest" + } + } + }, + "required": true + }, + "x-capability": [ + "DataModelsAcl:READ" + ], + "responses": { + "200": { + "$ref": "#/components/responses/InstanceInspectResponse" + }, + "400": { + "$ref": "#/components/responses/ErrorResponse" + } + } + } + }, "/events": { "post": { "tags": [ @@ -1792,7 +1857,7 @@ "Events" ], "summary": "List events", - "description": "List events optionally filtered on query parameters\n\n### Request throttling\nThis endpoint is meant for data analytics/exploration usage and is not suitable for high load data retrieval usage. \nIt is a subject of the new throttling schema (limited request rate and concurrency).\nPlease check [Events resource description](../../) for more information.", + "description": "List events optionally filtered on query parameters\n\n### Request throttling\nThis endpoint is meant for data analytics/exploration usage and is not suitable for high load data retrieval usage.\nIt is a subject of the new throttling schema (limited request rate and concurrency).\nPlease check [Events resource description](../../) for more information.", "operationId": "listEvents", "parameters": [ { @@ -2050,7 +2115,7 @@ "Events" ], "summary": "Filter events", - "description": "Retrieve a list of events in the same project. This operation supports pagination by cursor.\nApply Filtering and Advanced filtering criteria to select a subset of events.\n\n### Advanced filtering\nAdvanced filter lets you create complex filtering expressions that combine simple operations,\nsuch as `equals`, `prefix`, `exists`, etc., using boolean operators `and`, `or`, and `not`.\nIt applies to basic fields as well as metadata.\n\nSee the `advancedFilter` attribute in the example.\n\nSee more information about filtering DSL [here](https://docs.cognite.com/dev/concepts/resource_filtering_dsl/ \"filtering DSL\").\n\n#### Supported leaf filters\n| Leaf filter | Supported fields | Description |\n|----------------|------------------------|--------------|\n| `containsAll` | Array type fields | Only includes results which contain all of the specified values.
`{\"containsAll\": {\"property\": [\"property\"], \"values\": [1, 2, 3]}}` |\n| `containsAny` | Array type fields | Only includes results which contain at least one of the specified values.
`{\"containsAny\": {\"property\": [\"property\"], \"values\": [1, 2, 3]}}` |\n| `equals` | Non-array type fields | Only includes results that are equal to the specified value.
`{\"equals\": {\"property\": [\"property\"], \"value\": \"example\"}}` |\n| `exists` | All fields | Only includes results where the specified property exists (has value).
`{\"exists\": {\"property\": [\"property\"]}}` |\n| `in` | Non-array type fields | Only includes results that are equal to one of the specified values.
`{\"in\": {\"property\": [\"property\"], \"values\": [1, 2, 3]}}` |\n| `prefix` | String type fields | Only includes results which start with the specified value.
`{\"prefix\": {\"property\": [\"property\"], \"value\": \"example\"}}` |\n| `range` | Non-array type fields | Only includes results that fall within the specified range.
`{\"range\": {\"property\": [\"property\"], \"gt\": 1, \"lte\": 5}}`
Supported operators: `gt`, `lt`, `gte`, `lte` |\n| `search` | `[\"description\"]` | Introduced to provide functional parity with /events/search endpoint.
`{\"search\": {\"property\": [\"property\"], \"value\": \"example\"}}` |\n\n##### Search\nThe `search` leaf filter provides functional parity with the `/events/search` endpoint.\nIt's available only for the `[\"description\"]` field. When specifying only this filter with no explicit ordering,\nbehavior is the same as of the `/events/search/` endpoint without specifying filters.\nExplicit sorting overrides the default ordering by relevance.\nIt's possible to use the `search` leaf filter as any other leaf filter for creating complex queries.\n\nSee the `search` filter in the `advancedFilter` attribute in the example.\n\n#### advancedFilter attribute limits\n- filter query max depth: 10\n- filter query max number of clauses: 100\n- filter by metadata is case-insensitive, and it supports filtering on keys and values up to 256 characters\n- `and` and `or` clauses must have at least one element\n- `property` array of each leaf filter has the following limitations:\n - number of elements in the array is in the range [1, 2]\n - elements must not be blank\n - each element max length is 128 symbols\n - property array must match one of the existing properties (static or dynamic metadata)\n- `containsAll`, `containsAny`, and `in` filter `values` array size must be in the range [1, 100]\n- `containsAll`, `containsAny`, and `in` filter `values` array must contain elements of a primitive type (number, string)\n- `range` filter must have at least one of `gt`, `gte`, `lt`, `lte` attributes.\n But `gt` is mutually exclusive to `gte`, while `lt` is mutually exclusive to `lte`.\n For metadata, both upper and lower bounds must be specified.\n- `gt`, `gte`, `lt`, `lte` in the `range` filter must be a primitive value\n- `search` filter `value` must not be blank and the length must be in the range [1, 128]\n- filter query may have maximum 2 search leaf filters\n- maximum leaf filter string value length is different depending on the property the filter is using:\n - `externalId` - 255\n - `description` - 128 for the `search` filter and 255 for other filters\n - `type` - 64\n - `subtype` - 64\n - `source` - 128\n - any `metadata` key - 128 \n\n### Sorting\nBy default, events are sorted by their creation time in the ascending order.\nUse the `search` leaf filter to sort the results by relevance.\nSorting by other fields can be explicitly requested. The `order` field is optional and defaults \nto `desc` for `_score_` and `asc` for all other fields.\nThe `nulls` field is optional and defaults to `auto`. `auto` is translated to `last` \nfor the `asc` order and to `first` for the `desc` order by the service.\nPartitions are done independently of sorting: there's no guarantee of the sort order between elements from different partitions.\n\nSee the `sort` attribute in the example.\n\n#### Null values\nIn case the `nulls` attribute has the `auto` value or the attribute isn't specified,\nnull (missing) values are considered to be bigger than any other values.\nThey are placed last when sorting in the `asc` order and first when sorting in `desc`.\nOtherwise, missing values are placed according to the `nulls` attribute (last or first), and their placement doesn't depend on the `order` value.\nValues, such as empty strings, aren't considered as nulls.\n\n#### Sorting by score\nUse a special sort property `_score_` when sorting by relevance. \nThe more filters a particular event matches, the higher its score is. This can be useful,\nfor example, when building UIs. Let's assume we want exact matches to be be displayed above matches by\nprefix as in the request below. An event with the type `fire` will match both `equals` and `prefix`\nfilters and, therefore, have higher score than events with names like `fire training` that match only the `prefix` filter.\n\n```\n\"advancedFilter\" : {\n \"or\" : [\n {\n \"equals\": {\n \"property\": [\"type\"], \n \"value\": \"fire\"\n }\n },\n {\n \"prefix\": {\n \"property\": [\"type\"], \n \"value\": \"fire\"\n }\n }\n ]\n},\n\"sort\": [\n {\n \"property\" : [\"_score_\"]\n }\n]\n```\n\n### Request throttling\nThis endpoint is meant for data analytics/exploration usage and is not suitable for high load data retrieval usage. \nIt is a subject of the new throttling schema (limited request rate and concurrency).\nPlease check [Events resource description](../../) for more information.", + "description": "Retrieve a list of events in the same project. This operation supports pagination by cursor.\nApply Filtering and Advanced filtering criteria to select a subset of events.\n\n### Advanced filtering\nAdvanced filter lets you create complex filtering expressions that combine simple operations,\nsuch as `equals`, `prefix`, `exists`, etc., using boolean operators `and`, `or`, and `not`.\nIt applies to basic fields as well as metadata.\n\nSee the `advancedFilter` attribute in the example.\n\nSee more information about filtering DSL [here](https://docs.cognite.com/dev/concepts/resource_filtering_dsl/ \"filtering DSL\").\n\n#### Supported leaf filters\n| Leaf filter | Supported fields | Description |\n|----------------|------------------------|--------------|\n| `containsAll` | Array type fields | Only includes results which contain all of the specified values.
`{\"containsAll\": {\"property\": [\"property\"], \"values\": [1, 2, 3]}}` |\n| `containsAny` | Array type fields | Only includes results which contain at least one of the specified values.
`{\"containsAny\": {\"property\": [\"property\"], \"values\": [1, 2, 3]}}` |\n| `equals` | Non-array type fields | Only includes results that are equal to the specified value.
`{\"equals\": {\"property\": [\"property\"], \"value\": \"example\"}}` |\n| `exists` | All fields | Only includes results where the specified property exists (has value).
`{\"exists\": {\"property\": [\"property\"]}}` |\n| `in` | Non-array type fields | Only includes results that are equal to one of the specified values.
`{\"in\": {\"property\": [\"property\"], \"values\": [1, 2, 3]}}` |\n| `prefix` | String type fields | Only includes results which start with the specified value.
`{\"prefix\": {\"property\": [\"property\"], \"value\": \"example\"}}` |\n| `range` | Non-array type fields | Only includes results that fall within the specified range.
`{\"range\": {\"property\": [\"property\"], \"gt\": 1, \"lte\": 5}}`
Supported operators: `gt`, `lt`, `gte`, `lte` |\n| `search` | `[\"description\"]` | Introduced to provide functional parity with /events/search endpoint.
`{\"search\": {\"property\": [\"property\"], \"value\": \"example\"}}` |\n\n##### Search\nThe `search` leaf filter provides functional parity with the `/events/search` endpoint.\nIt's available only for the `[\"description\"]` field. When specifying only this filter with no explicit ordering,\nbehavior is the same as of the `/events/search/` endpoint without specifying filters.\nExplicit sorting overrides the default ordering by relevance.\nIt's possible to use the `search` leaf filter as any other leaf filter for creating complex queries.\n\nSee the `search` filter in the `advancedFilter` attribute in the example.\n\n#### advancedFilter attribute limits\n- filter query max depth: 10\n- filter query max number of clauses: 100\n- filter by metadata is case-insensitive, and it supports filtering on keys and values up to 256 characters\n- `and` and `or` clauses must have at least one element\n- `property` array of each leaf filter has the following limitations:\n - number of elements in the array is in the range [1, 2]\n - elements must not be blank\n - each element max length is 128 symbols\n - property array must match one of the existing properties (static or dynamic metadata)\n- `containsAll`, `containsAny`, and `in` filter `values` array size must be in the range [1, 100]\n- `containsAll`, `containsAny`, and `in` filter `values` array must contain elements of a primitive type (number, string)\n- `range` filter must have at least one of `gt`, `gte`, `lt`, `lte` attributes.\n But `gt` is mutually exclusive to `gte`, while `lt` is mutually exclusive to `lte`.\n For metadata, both upper and lower bounds must be specified.\n- `gt`, `gte`, `lt`, `lte` in the `range` filter must be a primitive value\n- `search` filter `value` must not be blank and the length must be in the range [1, 128]\n- filter query may have maximum 2 search leaf filters\n- maximum leaf filter string value length is different depending on the property the filter is using:\n - `externalId` - 255\n - `description` - 128 for the `search` filter and 255 for other filters\n - `type` - 64\n - `subtype` - 64\n - `source` - 128\n - any `metadata` key - 128\n\n### Sorting\nBy default, events are sorted by their creation time in the ascending order.\nUse the `search` leaf filter to sort the results by relevance.\nSorting by other fields can be explicitly requested. The `order` field is optional and defaults\nto `desc` for `_score_` and `asc` for all other fields.\nThe `nulls` field is optional and defaults to `auto`. `auto` is translated to `last`\nfor the `asc` order and to `first` for the `desc` order by the service.\nPartitions are done independently of sorting: there's no guarantee of the sort order between elements from different partitions.\n\nSee the `sort` attribute in the example.\n\n#### Null values\nIn case the `nulls` attribute has the `auto` value or the attribute isn't specified,\nnull (missing) values are considered to be bigger than any other values.\nThey are placed last when sorting in the `asc` order and first when sorting in `desc`.\nOtherwise, missing values are placed according to the `nulls` attribute (last or first), and their placement doesn't depend on the `order` value.\nValues, such as empty strings, aren't considered as nulls.\n\n#### Sorting by score\nUse a special sort property `_score_` when sorting by relevance.\nThe more filters a particular event matches, the higher its score is. This can be useful,\nfor example, when building UIs. Let's assume we want exact matches to be be displayed above matches by\nprefix as in the request below. An event with the type `fire` will match both `equals` and `prefix`\nfilters and, therefore, have higher score than events with names like `fire training` that match only the `prefix` filter.\n\n```\n\"advancedFilter\" : {\n \"or\" : [\n {\n \"equals\": {\n \"property\": [\"type\"],\n \"value\": \"fire\"\n }\n },\n {\n \"prefix\": {\n \"property\": [\"type\"],\n \"value\": \"fire\"\n }\n }\n ]\n},\n\"sort\": [\n {\n \"property\" : [\"_score_\"]\n }\n]\n```\n\n### Request throttling\nThis endpoint is meant for data analytics/exploration usage and is not suitable for high load data retrieval usage.\nIt is a subject of the new throttling schema (limited request rate and concurrency).\nPlease check [Events resource description](../../) for more information.", "operationId": "advancedListEvents", "requestBody": { "content": { @@ -2100,7 +2165,7 @@ "Events" ], "summary": "Aggregate events", - "description": "The aggregation API lets you compute aggregated results on events, \nsuch as getting the count of all Events in a project, checking\ndifferent descriptions of events in your project, etc.\n\n#### Aggregate filtering\n##### Filter (filter & advancedFilter) data for aggregates\nFilters behave the same way as for the `Filter events` endpoint.\nIn text properties, the values are aggregated in a case-insensitive manner.\n\n##### aggregateFilter to filter aggregate results\n`aggregateFilter` works similarly to `advancedFilter` but always applies to aggregate properties.\nFor instance, in an aggregation for the `source` property, only the values (aka buckets) of the `source` property can be filtered out. \n\n### Request throttling\nThis endpoint is meant for data analytics/exploration usage and is not suitable for high load data retrieval usage. \nThe Aggregates endpoint, as with all endpoints in the Events API, is subject to a request budget that applies \nlimits to both request rate and concurrency.\nPlease check [Events resource description](../../) for more information.", + "description": "The aggregation API lets you compute aggregated results on events,\nsuch as getting the count of all Events in a project, checking\ndifferent descriptions of events in your project, etc.\n\n#### Aggregate filtering\n##### Filter (filter & advancedFilter) data for aggregates\nFilters behave the same way as for the `Filter events` endpoint.\nIn text properties, the values are aggregated in a case-insensitive manner.\n\n##### aggregateFilter to filter aggregate results\n`aggregateFilter` works similarly to `advancedFilter` but always applies to aggregate properties.\nFor instance, in an aggregation for the `source` property, only the values (aka buckets) of the `source` property can be filtered out.\n\n### Request throttling\nThis endpoint is meant for data analytics/exploration usage and is not suitable for high load data retrieval usage.\\\nThe Aggregates endpoint, as with all endpoints in the Events API, is subject to a request budget that applies\nlimits to both request rate and concurrency.\nPlease check [Events resource description](../../) for more information.", "operationId": "aggregateEvents", "requestBody": { "content": { @@ -2254,7 +2319,7 @@ "Events" ], "summary": "Search events", - "description": "Fulltext search for events based on result relevance. Primarily meant\nfor human-centric use-cases, not for programs, since matching and\nordering may change over time. Additional filters can also be\nspecified. This operation doesn't support pagination.\n\n### Request throttling\nThis endpoint is meant for data analytics/exploration usage and is not suitable for high load data retrieval usage. \nIt is a subject of the new throttling schema (limited request rate and concurrency).\nPlease check [Events resource description](../../) for more information.", + "description": "Fulltext search for events based on result relevance. Primarily meant\nfor human-centric use-cases, not for programs, since matching and\nordering may change over time. Additional filters can also be\nspecified. This operation doesn't support pagination.\n\n### Request throttling\nThis endpoint is meant for data analytics/exploration usage and is not suitable for high load data retrieval usage.\nIt is a subject of the new throttling schema (limited request rate and concurrency).\nPlease check [Events resource description](../../) for more information.", "operationId": "searchEvents", "requestBody": { "content": { @@ -2669,6 +2734,88 @@ ] } }, + "/files/uploadlink": { + "post": { + "tags": [ + "Files" + ], + "summary": "Get upload file link", + "description": "Get an uploadUrl for a file.\n\nTo upload the file, send an HTTP PUT request to the uploadUrl from the response, with the relevant 'Content-Type' and 'Content-Length' headers.\n\nIf the uploadUrl contains the string '/v1/files/gcs_proxy/', you can make a Google Cloud Storage (GCS) resumable upload request\nas documented in https://cloud.google.com/storage/docs/json_api/v1/how-tos/resumable-upload.\n\nThe uploadUrl expires after one week.\nAny file info entry that does not have the actual file uploaded within one week will be automatically deleted.\n\nNote: The uploadUrl from getUploadLink supports files smaller than 5 GiB.\n\nThe getMultiPartUploadLink and completeMultiPartUpload endpoints provides an alternative way to upload files, both small and large, up to 1 TiB in size.\nThese endpoints exposes a uniform multipart upload API for all cloud vendor environments for CDF. Optionally parallel part uploads can be used, for faster uploads.\n\n### Request throttling\nThis endpoint is a subject of the new throttling schema (limited request rate and concurrency).\nPlease check [Files resource description](../../) for more information.", + "operationId": "getUploadLink", + "parameters": [ + { + "in": "header", + "name": "Origin", + "description": "The 'Origin' header parameter is required if there is a Cross Origin issue.", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Fields to be set for the file.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FileDataUploadIds" + } + } + }, + "required": true + }, + "responses": { + "201": { + "$ref": "#/components/responses/UploadFileMetadataResponse" + }, + "400": { + "$ref": "#/components/responses/ErrorResponse" + } + } + } + }, + "/files/multiuploadlink": { + "post": { + "tags": [ + "Files" + ], + "summary": "Get multipart file upload link", + "description": "Multipart file upload enables upload of files larger than 5 GiB, using a uniform API on all cloud environments for CDF.\n\nEach file part must be larger than 5 MiB, and smaller than 4000 MiB. The file part for the last uploadURL can be smaller than 5 MiB. Maximum 250 upload URLs can be requested.\nThe supported maximum size for each file uploaded with the multi-part upload API is therefore 1000 GiB (1.073 TB / 0.976 TiB).\nThe client should calculate the ideal number of parts depending on predetermined or estimated file size, between 1 and the maximum.\nSpecify the number of parts in the `parts` URL query parameter. The `parts` parameter is required.\n\nThe request returns in addition to the file `id`, also a `uploadId`, and a list of `uploadUrls` for uploading the file contents.\nTo upload a file, send an HTTP PUT request to each of the uploadUrls, with the corresponding part of the file in the request body.\nYou may use a 'Content-Length' header in the PUT request for each part, but this is not required.\nA failed part PUT upload can be retried.\n\nThe client must ensure that the parts of the source file are stored in the correct order, using the order of the `uploadUrls` as specified in the response.\nThis to avoid ending up with a corrupt final file.\n\nThe parts can optionally be uploaded in parallel, preferably on a subset of parts at a time, for example maximum 3 concurrent PUT operations.\n\nOnce all file parts have been uploaded, the client should call the 'files/completemultipartupload' endpoint,\nwith the required file ID (as `id` or `externalId`) and `uploadId` fields in the request body. This will assemble the parts into one file.\nThe file's `uploaded` flag will then eventually be set to `true`.\n\nA standard sequence of calls to upload a large file with multipart upload would be for example as follows:\n1. POST files/initmultipartupload?parts=8, to start a multipart upload session with 8 parts. Expect a 201 CREATED response code, and a response body with information to be used in the part uploads and completemultipartupload requests.\n2. PUT `uploadUrl`, for each of the `uploadUrls` in the response from files/initmultipartupload. Expect a 200 OK or 201 CREATED response for each PUT request.\n3. POST files/completemultipartupload, with request body '{ \"id\":123456789, \"uploadId\":\"ABCD4321EFGH\" }'. This will assemble the file. Expect a 200 OK response.\n\nConsider verifying that the file is eventually marked as uploaded with a call to the getFileByInternalId endpoint.\n\nNOTE: The uploadUrls expires after one week.\nA file that does not have the file content parts uploaded and completed within one week will be automatically deleted.\n\n### Request throttling\nThis endpoint is a subject of the new throttling schema (limited request rate and concurrency).\nPlease check [Files resource description](../../) for more information.", + "operationId": "getMultiPartUploadLink", + "parameters": [ + { + "in": "query", + "name": "parts", + "required": true, + "schema": { + "type": "integer", + "format": "int32", + "minimum": 1, + "maximum": 250 + }, + "description": "The 'parts' parameter specifies how many uploadURLs should be returned, for uploading the file contents in parts. See main endpoint description for more details." + } + ], + "requestBody": { + "description": "Fields to be set for the file.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FileDataUploadIds" + } + } + }, + "required": true + }, + "responses": { + "201": { + "$ref": "#/components/responses/MultiPartUploadFileMetadataResponse" + }, + "400": { + "$ref": "#/components/responses/ErrorResponse" + } + } + } + }, "/files/{id}": { "get": { "tags": [ @@ -2865,7 +3012,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/FileDataIds" + "$ref": "#/components/schemas/FileDeleteByIds" } } }, @@ -2983,6 +3130,20 @@ "schema": { "$ref": "#/components/schemas/CogniteExternalId" } + }, + { + "in": "query", + "name": "space", + "schema": { + "$ref": "#/components/schemas/InstanceSpace" + } + }, + { + "in": "query", + "name": "instanceExternalId", + "schema": { + "$ref": "#/components/schemas/InstanceExternalId" + } } ], "responses": { @@ -4135,7 +4296,7 @@ "3D Files" ], "summary": "Retrieve a 3D directory file", - "description": "Retrieve the contents of a 3D file, for a blobId which is of a directory type. \nThis applies to the output types 'gltf-directory', 'reveal-directory', 'ept-pointcloud', 'tiles-directory', 'model-from-points'. \n\nThe 'subPath' elements, i.e. directory and/or file names, within each directory output type is subject to change and depends on each output type.\n- The 'gltf-directory' output is used by Reveal v3+ for visualizing CAD files and contains a 'scene.json' file, which describes what other files are available within the blobId.\n- The 'reveal-directory' output is used by Reveal v1-2 for visualizing CAD files and contains a 'scene.json' file, which describes what other files are available within the blobId.\n- The 'ept-pointcloud' output is used by Reveal for visualizing point clouds, and contains a 'ept.json' file. The 'ept.json' file contains general information for the point cloud data. The file named 'ept-hierarchy/0-0-0-0.json' for the same blobId lists all the output point files which can be retrieved from a 'ept-data' folder for the same blobId, e.g. 'ept-data/0-0-0-0.bin'. The '.bin' files are in a custom point cloud format following the schema in the 'ept.json' file. Additionally, a 'filterOptions.json' file contains a description of which options were used when processing the point cloud.\n\nExperimental outputs, normally not enabled:\nThe 'tiles-directory' output contains files for classification of the point cloud data. Retrieve the 'tiles.json' file from this output for a overview of the files within this output.\nThe 'model-from-points' output is used for storing a mesh based output file of some parts of the point cloud. This is stored as a 'model.ciff' file, in the Cognite internal file format.\n\nThis endpoint supports tag-based caching.\n\nThis endpoint is only compatible with 3D file IDs from the 3D API, and not compatible with\nfile IDs from the Files API.", + "description": "Retrieve the contents of a 3D file, for a blobId which is of a directory type.\nThis applies to the output types 'gltf-directory', 'reveal-directory', 'ept-pointcloud', 'tiles-directory', 'model-from-points'.\n\nThe 'subPath' elements, i.e. directory and/or file names, within each directory output type is subject to change and depends on each output type.\n- The 'gltf-directory' output is used by Reveal v3+ for visualizing CAD files and contains a 'scene.json' file, which describes what other files are available within the blobId.\n- The 'reveal-directory' output is used by Reveal v1-2 for visualizing CAD files and contains a 'scene.json' file, which describes what other files are available within the blobId.\n- The 'ept-pointcloud' output is used by Reveal for visualizing point clouds, and contains a 'ept.json' file. The 'ept.json' file contains general information for the point cloud data. The file named 'ept-hierarchy/0-0-0-0.json' for the same blobId lists all the output point files which can be retrieved from a 'ept-data' folder for the same blobId, e.g. 'ept-data/0-0-0-0.bin'. The '.bin' files are in a custom point cloud format following the schema in the 'ept.json' file. Additionally, a 'filterOptions.json' file contains a description of which options were used when processing the point cloud.\n\nExperimental outputs, normally not enabled:\nThe 'tiles-directory' output contains files for classification of the point cloud data. Retrieve the 'tiles.json' file from this output for a overview of the files within this output.\nThe 'model-from-points' output is used for storing a mesh based output file of some parts of the point cloud. This is stored as a 'model.ciff' file, in the Cognite internal file format.\n\nThis endpoint supports tag-based caching.\n\nThis endpoint is only compatible with 3D file IDs from the 3D API, and not compatible with\nfile IDs from the Files API.", "operationId": "get3DDirectoryFile", "parameters": [ { @@ -4907,7 +5068,7 @@ { "name": "format", "in": "query", - "description": "Format identifier, e.g. 'ept-pointcloud' (point cloud). Well known formats are: \n'ept-pointcloud' (point cloud data) or 'reveal-directory' (output supported by Reveal). \n'all-outputs' can be used to retrieve all outputs for a 3D revision. Note that some of \nthe outputs are internal, where the format and availability might change without warning.\n", + "description": "Format identifier, e.g. 'ept-pointcloud' (point cloud). Well known formats are:\n'ept-pointcloud' (point cloud data) or 'reveal-directory' (output supported by Reveal).\n'all-outputs' can be used to retrieve all outputs for a 3D revision. Note that some of\nthe outputs are internal, where the format and availability might change without warning.\n", "schema": { "type": "string" } @@ -5115,7 +5276,7 @@ } ], "requestBody": { - "description": "The request body containing the IDs of the nodes to retrieve. Will return error 400 if the revision is still being processed.", + "description": "The request body containing the IDs of the nodes to retrieve. Will return error 400 if the revision is still being processed.", "content": { "application/json": { "schema": { @@ -5787,7 +5948,7 @@ "Time series" ], "summary": "Filter time series", - "description": "
\n\nRetrieves a list of time series that match the given criteria.\n\n\n### Advanced filtering\n\nThe `advancedFilter`\nfield lets you create complex filtering expressions that combine simple operations,\nsuch as `equals`, `prefix`, and `exists`, by using the Boolean operators `and`, `or`, and `not`.\nFiltering applies to basic fields as well as metadata. See the `advancedFilter` syntax in the request example.\n\n\n\n#### Supported leaf filters\n\n| Leaf filter | Supported fields | Description and example |\n|----------------|------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `containsAll` | Array type fields | Only includes results which contain all of the specified values.
`{\"containsAll\": {\"property\": [\"property\"], \"values\": [1, 2, 3]}}` |\n| `containsAny` | Array type fields | Only includes results which contain at least one of the specified values.
`{\"containsAny\": {\"property\": [\"property\"], \"values\": [1, 2, 3]}}` |\n| `equals` | Non-array type fields | Only includes results that are equal to the specified value.
`{\"equals\": {\"property\": [\"property\"], \"value\": \"example\"}}` |\n| `exists` | All fields | Only includes results where the specified property exists (has a value).
`{\"exists\": {\"property\": [\"property\"]}}` |\n| `in` | Non-array type fields | Only includes results that are equal to one of the specified values.
`{\"in\": {\"property\": [\"property\"], \"values\": [1, 2, 3]}}` |\n| `prefix` | String type fields | Only includes results which start with the specified text.
`{\"prefix\": {\"property\": [\"property\"], \"value\": \"example\"}}` |\n| `range` | Non-array type fields | Only includes results that fall within the specified range.
`{\"range\": {\"property\": [\"property\"], \"gt\": 1, \"lte\": 5}}`
Supported operators: `gt`, `lt`, `gte`, `lte` |\n | `search` | `[\"name\"]` and `[\"description\"]` | Introduced to provide functional parity with the /timeseries/search endpoint.
`{\"search\": {\"property\": [\"property\"], \"value\": \"example\"}}` |\n\n#### Supported properties\n\n| Property | Type |\n|-----------------------------------|--------------------|\n| `[\"description\"]` | string |\n| `[\"externalId\"]` | string |\n| `[\"metadata\", \"\"]` | string |\n| `[\"name\"]` | string |\n| `[\"unit\"]` | string |\n| `[\"unitExternalId\"]` | string |\n| `[\"unitQuantity\"]` | string |\n| `[\"assetId\"]` | number |\n| `[\"assetRootId\"]` | number |\n| `[\"createdTime\"]` | number |\n| `[\"dataSetId\"]` | number |\n| `[\"id\"]` | number |\n| `[\"lastUpdatedTime\"]` | number |\n| `[\"isStep\"]` | Boolean |\n| `[\"isString\"]` | Boolean |\n| `[\"accessCategories\"]` | array of strings |\n| `[\"securityCategories\"]` | array of numbers |\n\n#### Limits\n\n- Filter query max depth: 10.\n- Filter query max number of clauses: 100.\n- `and` and `or` clauses must have at least one element (and at most 99, since each element counts\n towards the total clause limit, and so does the `and`/`or` clause itself).\n- The `property` array of each leaf filter has the following limitations:\n - Number of elements in the array is 1 or 2.\n - Elements must not be null or blank.\n - Each element max length is 256 characters.\n - The `property` array must match one of the existing properties (static top-level property or dynamic metadata property).\n- `containsAll`, `containsAny`, and `in` filter `values` array size must be in the range [1, 100].\n- `containsAll`, `containsAny`, and `in` filter `values` array must contain elements of number or string type (matching the type of the given property).\n- `range` filter must have at lest one of `gt`, `gte`, `lt`, `lte` attributes.\n But `gt` is mutually exclusive to `gte`, while `lt` is mutually exclusive to `lte`.\n- `gt`, `gte`, `lt`, `lte` in the `range` filter must be of number or string type (matching the type of the given property).\n- `search` filter `value` must not be blank, and the length must be in the range [1, 128], and there\n may be at most two `search` filters in the entire filter query.\n- The maximum length of the `value` of a leaf filter that is applied to a string property is 256.\n\n### Sorting\n\nBy default, time series are sorted by their creation time in ascending order.\nSorting by another property or by several other properties can be explicitly requested via the\n`sort` field, which must contain a list\nof one or more sort specifications. Each sort specification indicates the `property` to sort on\nand, optionally, the `order` in which to sort (defaults to `asc`). If multiple sort specifications are\nsupplied, the results are sorted on the first property, and those with the same value for the first\nproperty are sorted on the second property, and so on. \nPartitioning is done independently of sorting; there is no guarantee of sort order between elements from different partitions.\n\n#### Null values\n\nIn case the `nulls` field has the `auto` value, or the field isn't specified, null (missing) values\nare considered bigger than any other values. They are placed last when sorting in the `asc`\norder and first in the `desc` order. Otherwise, missing values are placed according to\nthe `nulls` field (`last` or `first`), and their placement won't depend on the `order`\nfield. Note that the number zero, empty strings, and empty lists are all considered\n_not_ null.\n\n#### Example\n\n```json\n{\n \"sort\": [\n {\n \"property\" : [\"createdTime\"],\n \"order\": \"desc\",\n \"nulls\": \"last\"\n },\n {\n \"property\" : [\"metadata\", \"\"]\n }\n ]\n}\n```\n\n\n#### Properties\n\nYou can sort on the following properties:\n\n| Property |\n|-----------------------------------|\n| `[\"assetId\"]` |\n| `[\"createdTime\"]` |\n| `[\"dataSetId\"]` |\n| `[\"description\"]` |\n| `[\"externalId\"]` |\n| `[\"lastUpdatedTime\"]` |\n| `[\"metadata\", \"\"]` |\n| `[\"name\"]` |\n\n\n#### Limits\n\nThe `sort` array must contain 1 to 2 elements.\n
", + "description": "
\n\nRetrieves a list of time series that match the given criteria.\n\n\n### Advanced filtering\n\nThe `advancedFilter`\nfield lets you create complex filtering expressions that combine simple operations,\nsuch as `equals`, `prefix`, and `exists`, by using the Boolean operators `and`, `or`, and `not`.\nFiltering applies to basic fields as well as metadata. See the `advancedFilter` syntax in the request example.\n\n\n\n#### Supported leaf filters\n\n| Leaf filter | Supported fields | Description and example |\n|----------------|------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `containsAll` | Array type fields | Only includes results which contain all of the specified values.
`{\"containsAll\": {\"property\": [\"property\"], \"values\": [1, 2, 3]}}` |\n| `containsAny` | Array type fields | Only includes results which contain at least one of the specified values.
`{\"containsAny\": {\"property\": [\"property\"], \"values\": [1, 2, 3]}}` |\n| `equals` | Non-array type fields | Only includes results that are equal to the specified value.
`{\"equals\": {\"property\": [\"property\"], \"value\": \"example\"}}` |\n| `exists` | All fields | Only includes results where the specified property exists (has a value).
`{\"exists\": {\"property\": [\"property\"]}}` |\n| `in` | Non-array type fields | Only includes results that are equal to one of the specified values.
`{\"in\": {\"property\": [\"property\"], \"values\": [1, 2, 3]}}` |\n| `prefix` | String type fields | Only includes results which start with the specified text.
`{\"prefix\": {\"property\": [\"property\"], \"value\": \"example\"}}` |\n| `range` | Non-array type fields | Only includes results that fall within the specified range.
`{\"range\": {\"property\": [\"property\"], \"gt\": 1, \"lte\": 5}}`
Supported operators: `gt`, `lt`, `gte`, `lte` |\n | `search` | `[\"name\"]` and `[\"description\"]` | Introduced to provide functional parity with the /timeseries/search endpoint.
`{\"search\": {\"property\": [\"property\"], \"value\": \"example\"}}` |\n\n#### Supported properties\n\n| Property | Type |\n|-----------------------------------|--------------------|\n| `[\"description\"]` | string |\n| `[\"externalId\"]` | string |\n| `[\"metadata\", \"\"]` | string |\n| `[\"name\"]` | string |\n| `[\"unit\"]` | string |\n| `[\"unitExternalId\"]` | string |\n| `[\"unitQuantity\"]` | string |\n| `[\"instanceId\", \"space\"]` | string |\n| `[\"instanceId\", \"externalId\"]` | string |\n| `[\"assetId\"]` | number |\n| `[\"assetRootId\"]` | number |\n| `[\"createdTime\"]` | number |\n| `[\"dataSetId\"]` | number |\n| `[\"id\"]` | number |\n| `[\"lastUpdatedTime\"]` | number |\n| `[\"isStep\"]` | Boolean |\n| `[\"isString\"]` | Boolean |\n| `[\"accessCategories\"]` | array of strings |\n| `[\"securityCategories\"]` | array of numbers |\n\n#### Limits\n\n- Filter query max depth: 10.\n- Filter query max number of clauses: 100.\n- `and` and `or` clauses must have at least one element (and at most 99, since each element counts\n towards the total clause limit, and so does the `and`/`or` clause itself).\n- The `property` array of each leaf filter has the following limitations:\n - Number of elements in the array is 1 or 2.\n - Elements must not be null or blank.\n - Each element max length is 256 characters.\n - The `property` array must match one of the existing properties (static top-level property or dynamic metadata property).\n- `containsAll`, `containsAny`, and `in` filter `values` array size must be in the range [1, 100].\n- `containsAll`, `containsAny`, and `in` filter `values` array must contain elements of number or string type (matching the type of the given property).\n- `range` filter must have at lest one of `gt`, `gte`, `lt`, `lte` attributes.\n But `gt` is mutually exclusive to `gte`, while `lt` is mutually exclusive to `lte`.\n- `gt`, `gte`, `lt`, `lte` in the `range` filter must be of number or string type (matching the type of the given property).\n- `search` filter `value` must not be blank, and the length must be in the range [1, 128], and there\n may be at most two `search` filters in the entire filter query.\n- The maximum length of the `value` of a leaf filter that is applied to a string property is 256.\n\n### Sorting\n\nBy default, time series are sorted by their creation time in ascending order.\nSorting by another property or by several other properties can be explicitly requested via the\n`sort` field, which must contain a list\nof one or more sort specifications. Each sort specification indicates the `property` to sort on\nand, optionally, the `order` in which to sort (defaults to `asc`). If multiple sort specifications are\nsupplied, the results are sorted on the first property, and those with the same value for the first\nproperty are sorted on the second property, and so on. \nPartitioning is done independently of sorting; there is no guarantee of sort order between elements from different partitions.\n\n#### Null values\n\nIn case the `nulls` field has the `auto` value, or the field isn't specified, null (missing) values\nare considered bigger than any other values. They are placed last when sorting in the `asc`\norder and first in the `desc` order. Otherwise, missing values are placed according to\nthe `nulls` field (`last` or `first`), and their placement won't depend on the `order`\nfield. Note that the number zero, empty strings, and empty lists are all considered\n_not_ null.\n\n#### Example\n\n```json\n{\n \"sort\": [\n {\n \"property\" : [\"createdTime\"],\n \"order\": \"desc\",\n \"nulls\": \"last\"\n },\n {\n \"property\" : [\"metadata\", \"\"]\n }\n ]\n}\n```\n\n\n#### Properties\n\nYou can sort on the following properties:\n\n| Property |\n|-----------------------------------|\n| `[\"assetId\"]` |\n| `[\"createdTime\"]` |\n| `[\"dataSetId\"]` |\n| `[\"description\"]` |\n| `[\"externalId\"]` |\n| `[\"lastUpdatedTime\"]` |\n| `[\"metadata\", \"\"]` |\n| `[\"name\"]` |\n| `[\"instanceId\", \"space\"]` |\n| `[\"instanceId\", \"externalId\"]` |\n\n#### Limits\n\nThe `sort` array must contain 1 to 2 elements.\n
", "operationId": "listTimeSeries", "requestBody": { "content": { @@ -6040,7 +6201,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/TimeSeriesLookupById" + "$ref": "#/components/schemas/TimeSeriesLookupByIdWithoutInstanceId" } } }, @@ -6055,7 +6216,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/NotFoundResponse" + "$ref": "#/components/schemas/NotFoundResponseWithoutInstanceId" } } } @@ -6125,7 +6286,7 @@ "$ref": "#/components/responses/EmptyResponse" }, "400": { - "description": "IDs or external IDs not found.", + "description": "IDs not found.", "content": { "application/json": { "schema": { @@ -6269,7 +6430,7 @@ } }, "400": { - "description": "The time series doesn't exist.", + "description": "IDs not found.", "content": { "application/json": { "schema": { @@ -6453,7 +6614,7 @@ "Data point subscriptions" ], "summary": "List subscription members", - "description": "List all member time series for a subscription. Use nextCursor to paginate through the results.", + "description": "List all member time series for a subscription.\n\nFor non-filter subscriptions, either `externalId` or `instanceId` will be set. This is to be\nable to see if each time series was added by external id or instance id. If a time series\nhas been added to a subscription both by external id and by instance id, it will be listed\ntwice in the output. If a time series that belonged to the subscription has been deleted,\n`id` will not be set.\n\nUse `nextCursor` to paginate through the results.", "operationId": "listSubscriptionMembers", "parameters": [ { @@ -6553,7 +6714,7 @@ "Data point subscriptions" ], "summary": "Update subscriptions", - "description": "Updates one or more subscriptions. Fields that are not included in the request, are not changed.", + "description": "Updates one or more subscriptions. Fields that are not included in the request, are not changed.\n\nIf both `instanceIds` and `timeSeriesIds` are set, they must either both be add/remove or\nboth be set operations.", "operationId": "updateSubscriptions", "requestBody": { "description": "The subscriptions to update", @@ -7651,164 +7812,15 @@ ] } }, - "/projects": { - "get": { - "servers": [ - { - "url": "https://{cluster}.cognitedata.com/api/v1", - "description": "The URL for the CDF cluster to connect to", - "variables": { - "cluster": { - "default": "api", - "enum": [ - "api", - "az-tyo-gp-001", - "az-eastus-1", - "az-power-no-northeurope", - "westeurope-1", - "asia-northeast1-1", - "gc-dsm-gp-001" - ] - } - } - } - ], - "tags": [ - "Projects" - ], - "summary": "List projects", - "description": "The list of all projects that the user has the 'list projects' capability in.\nThe user may not have access to any resources in the listed projects, even if they have access to list the project itself.\n", - "operationId": "listProjects", - "parameters": [], - "responses": { - "200": { - "$ref": "#/components/responses/ProjectListResponse" - } - } - }, - "post": { - "tags": [ - "Projects" - ], - "summary": "Create a project", - "description": "Creates new projects given project details.\nThis functionality is currently only available for Cognite and re-sellers of Cognite Data Fusion. Please contact Cognite Support for more information.\n", - "operationId": "createProject", - "requestBody": { - "description": "List of new project specifications", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DataProjectSpec" - } - } - }, - "required": true - }, - "responses": { - "201": { - "$ref": "#/components/responses/ProjectCreationResponse" - } - }, - "x-capability": [ - "projectsAcl:CREATE" - ] - } - }, + "/projects": {}, "/projects/{project}": { "parameters": [ { "$ref": "#/components/parameters/project" } - ], - "get": { - "servers": [ - { - "url": "https://{cluster}.cognitedata.com/api/v1", - "description": "The URL for the CDF cluster to connect to", - "variables": { - "cluster": { - "default": "api", - "enum": [ - "api", - "az-tyo-gp-001", - "az-eastus-1", - "az-power-no-northeurope", - "westeurope-1", - "asia-northeast1-1", - "gc-dsm-gp-001" - ] - } - } - } - ], - "tags": [ - "Projects" - ], - "summary": "Retrieve a project", - "description": "Retrieves information about a project given the project URL name.", - "operationId": "getProject", - "responses": { - "200": { - "$ref": "#/components/responses/ProjectResponse" - } - }, - "x-capability": [ - "projectsAcl:READ" - ], - "x-code-samples": [ - { - "lang": "JavaScript", - "label": "JavaScript SDK", - "source": "const projectInfo = await client.projects.retrieve('publicdata');" - } - ] - } - }, - "/update": { - "post": { - "tags": [ - "Projects" - ], - "summary": "Update a project", - "description": "Updates the project configuration.\n\n**Warning**: Updating a project will invalidate active [sessions](tag/Sessions) within that project.\n", - "operationId": "updateProject", - "requestBody": { - "description": "Object with updated project configuration.", - "content": { - "application/json": { - "schema": { - "description": "Project Update Object", - "title": "ProjectUpdateDTO", - "type": "object", - "properties": { - "update": { - "$ref": "#/components/schemas/ProjectUpdateObjectDTO" - } - }, - "required": [ - "update" - ] - } - } - } - }, - "responses": { - "200": { - "$ref": "#/components/responses/ProjectResponse" - } - }, - "x-capability": [ - "projectsAcl:UPDATE" - ], - "x-code-samples": [ - { - "lang": "JavaScript", - "label": "JavaScript SDK", - "source": "await client.projects.updateProject('new-project-name', {\n update: {\n name: {\n set: 'New project display name',\n }\n }\n})" - } - ] - } + ] }, + "/update": {}, "/securitycategories": { "get": { "tags": [ @@ -8341,7 +8353,7 @@ "Sequences" ], "summary": "Filter sequences", - "description": "
\n\nRetrieves a list of sequences that match the given criteria.\n\n\n### Advanced filtering\n\nThe `advancedFilter`\nfield lets you create complex filtering expressions that combine simple operations,\nsuch as `equals`, `prefix`, and `exists`, by using the Boolean operators `and`, `or`, and `not`.\nFiltering applies to basic fields as well as metadata. See the `advancedFilter` syntax in the request example.\n\n\n\n#### Supported leaf filters\n\n| Leaf filter | Supported fields | Description and example |\n|----------------|------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `containsAll` | Array type fields | Only includes results which contain all of the specified values.
`{\"containsAll\": {\"property\": [\"property\"], \"values\": [1, 2, 3]}}` |\n| `containsAny` | Array type fields | Only includes results which contain at least one of the specified values.
`{\"containsAny\": {\"property\": [\"property\"], \"values\": [1, 2, 3]}}` |\n| `equals` | Non-array type fields | Only includes results that are equal to the specified value.
`{\"equals\": {\"property\": [\"property\"], \"value\": \"example\"}}` |\n| `exists` | All fields | Only includes results where the specified property exists (has a value).
`{\"exists\": {\"property\": [\"property\"]}}` |\n| `in` | Non-array type fields | Only includes results that are equal to one of the specified values.
`{\"in\": {\"property\": [\"property\"], \"values\": [1, 2, 3]}}` |\n| `prefix` | String type fields | Only includes results which start with the specified text.
`{\"prefix\": {\"property\": [\"property\"], \"value\": \"example\"}}` |\n| `range` | Non-array type fields | Only includes results that fall within the specified range.
`{\"range\": {\"property\": [\"property\"], \"gt\": 1, \"lte\": 5}}`
Supported operators: `gt`, `lt`, `gte`, `lte` |\n | `search` | `[\"name\"]` and `[\"description\"]` | Introduced to provide functional parity with the /sequences/search endpoint.
`{\"search\": {\"property\": [\"property\"], \"value\": \"example\"}}` |\n\n#### Supported properties\n\n| Property | Type |\n|-----------------------------------|--------------------|\n| `[\"description\"]` | string |\n| `[\"externalId\"]` | string |\n| `[\"metadata\", \"\"]` | string |\n| `[\"name\"]` | string |\n| `[\"assetId\"]` | number |\n| `[\"assetRootId\"]` | number |\n| `[\"createdTime\"]` | number |\n| `[\"dataSetId\"]` | number |\n| `[\"id\"]` | number |\n| `[\"lastUpdatedTime\"]` | number |\n| `[\"accessCategories\"]` | array of strings |\n\n#### Limits\n\n- Filter query max depth: 10.\n- Filter query max number of clauses: 100.\n- `and` and `or` clauses must have at least one element (and at most 99, since each element counts\n towards the total clause limit, and so does the `and`/`or` clause itself).\n- The `property` array of each leaf filter has the following limitations:\n - Number of elements in the array is 1 or 2.\n - Elements must not be null or blank.\n - Each element max length is 256 characters.\n - The `property` array must match one of the existing properties (static top-level property or dynamic metadata property).\n- `containsAll`, `containsAny`, and `in` filter `values` array size must be in the range [1, 100].\n- `containsAll`, `containsAny`, and `in` filter `values` array must contain elements of number or string type (matching the type of the given property).\n- `range` filter must have at lest one of `gt`, `gte`, `lt`, `lte` attributes.\n But `gt` is mutually exclusive to `gte`, while `lt` is mutually exclusive to `lte`.\n- `gt`, `gte`, `lt`, `lte` in the `range` filter must be of number or string type (matching the type of the given property).\n- `search` filter `value` must not be blank, and the length must be in the range [1, 128], and there\n may be at most two `search` filters in the entire filter query.\n- The maximum length of the `value` of a leaf filter that is applied to a string property is 256.\n\n### Sorting\n\nBy default, sequences are sorted by their creation time in ascending order.\nSorting by another property or by several other properties can be explicitly requested via the\n`sort` field, which must contain a list\nof one or more sort specifications. Each sort specification indicates the `property` to sort on\nand, optionally, the `order` in which to sort (defaults to `asc`). If multiple sort specifications are\nsupplied, the results are sorted on the first property, and those with the same value for the first\nproperty are sorted on the second property, and so on. \nPartitioning is done independently of sorting; there is no guarantee of sort order between elements from different partitions.\n\n#### Null values\n\nIn case the `nulls` field has the `auto` value, or the field isn't specified, null (missing) values\nare considered bigger than any other values. They are placed last when sorting in the `asc`\norder and first in the `desc` order. Otherwise, missing values are placed according to\nthe `nulls` field (`last` or `first`), and their placement won't depend on the `order`\nfield. Note that the number zero, empty strings, and empty lists are all considered\n_not_ null.\n\n#### Example\n\n```json\n{\n \"sort\": [\n {\n \"property\" : [\"createdTime\"],\n \"order\": \"desc\",\n \"nulls\": \"last\"\n },\n {\n \"property\" : [\"metadata\", \"\"]\n }\n ]\n}\n```\n\n\n#### Properties\n\nYou can sort on the following properties:\n\n| Property |\n|-----------------------------------|\n| `[\"assetId\"]` |\n| `[\"createdTime\"]` |\n| `[\"dataSetId\"]` |\n| `[\"description\"]` |\n| `[\"externalId\"]` |\n| `[\"lastUpdatedTime\"]` |\n| `[\"metadata\", \"\"]` |\n| `[\"name\"]` |\n\n\n#### Limits\n\nThe `sort` array must contain 1 to 2 elements.\n
", + "description": "
\n\nRetrieves a list of sequences that match the given criteria.\n\n\n### Advanced filtering\n\nThe `advancedFilter`\nfield lets you create complex filtering expressions that combine simple operations,\nsuch as `equals`, `prefix`, and `exists`, by using the Boolean operators `and`, `or`, and `not`.\nFiltering applies to basic fields as well as metadata. See the `advancedFilter` syntax in the request example.\n\n\n\n#### Supported leaf filters\n\n| Leaf filter | Supported fields | Description and example |\n|----------------|------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `containsAll` | Array type fields | Only includes results which contain all of the specified values.
`{\"containsAll\": {\"property\": [\"property\"], \"values\": [1, 2, 3]}}` |\n| `containsAny` | Array type fields | Only includes results which contain at least one of the specified values.
`{\"containsAny\": {\"property\": [\"property\"], \"values\": [1, 2, 3]}}` |\n| `equals` | Non-array type fields | Only includes results that are equal to the specified value.
`{\"equals\": {\"property\": [\"property\"], \"value\": \"example\"}}` |\n| `exists` | All fields | Only includes results where the specified property exists (has a value).
`{\"exists\": {\"property\": [\"property\"]}}` |\n| `in` | Non-array type fields | Only includes results that are equal to one of the specified values.
`{\"in\": {\"property\": [\"property\"], \"values\": [1, 2, 3]}}` |\n| `prefix` | String type fields | Only includes results which start with the specified text.
`{\"prefix\": {\"property\": [\"property\"], \"value\": \"example\"}}` |\n| `range` | Non-array type fields | Only includes results that fall within the specified range.
`{\"range\": {\"property\": [\"property\"], \"gt\": 1, \"lte\": 5}}`
Supported operators: `gt`, `lt`, `gte`, `lte` |\n | `search` | `[\"name\"]` and `[\"description\"]` | Introduced to provide functional parity with the /sequences/search endpoint.
`{\"search\": {\"property\": [\"property\"], \"value\": \"example\"}}` |\n\n#### Supported properties\n\n| Property | Type |\n|-----------------------------------|--------------------|\n| `[\"description\"]` | string |\n| `[\"externalId\"]` | string |\n| `[\"metadata\", \"\"]` | string |\n| `[\"name\"]` | string |\n| `[\"assetId\"]` | number |\n| `[\"assetRootId\"]` | number |\n| `[\"createdTime\"]` | number |\n| `[\"dataSetId\"]` | number |\n| `[\"id\"]` | number |\n| `[\"lastUpdatedTime\"]` | number |\n| `[\"accessCategories\"]` | array of strings |\n\n#### Limits\n\n- Filter query max depth: 10.\n- Filter query max number of clauses: 100.\n- `and` and `or` clauses must have at least one element (and at most 99, since each element counts\n towards the total clause limit, and so does the `and`/`or` clause itself).\n- The `property` array of each leaf filter has the following limitations:\n - Number of elements in the array is 1 or 2.\n - Elements must not be null or blank.\n - Each element max length is 256 characters.\n - The `property` array must match one of the existing properties (static top-level property or dynamic metadata property).\n- `containsAll`, `containsAny`, and `in` filter `values` array size must be in the range [1, 100].\n- `containsAll`, `containsAny`, and `in` filter `values` array must contain elements of number or string type (matching the type of the given property).\n- `range` filter must have at lest one of `gt`, `gte`, `lt`, `lte` attributes.\n But `gt` is mutually exclusive to `gte`, while `lt` is mutually exclusive to `lte`.\n- `gt`, `gte`, `lt`, `lte` in the `range` filter must be of number or string type (matching the type of the given property).\n- `search` filter `value` must not be blank, and the length must be in the range [1, 128], and there\n may be at most two `search` filters in the entire filter query.\n- The maximum length of the `value` of a leaf filter that is applied to a string property is 256.\n\n### Sorting\n\nBy default, sequences are sorted by their creation time in ascending order.\nSorting by another property or by several other properties can be explicitly requested via the\n`sort` field, which must contain a list\nof one or more sort specifications. Each sort specification indicates the `property` to sort on\nand, optionally, the `order` in which to sort (defaults to `asc`). If multiple sort specifications are\nsupplied, the results are sorted on the first property, and those with the same value for the first\nproperty are sorted on the second property, and so on. \nPartitioning is done independently of sorting; there is no guarantee of sort order between elements from different partitions.\n\n#### Null values\n\nIn case the `nulls` field has the `auto` value, or the field isn't specified, null (missing) values\nare considered bigger than any other values. They are placed last when sorting in the `asc`\norder and first in the `desc` order. Otherwise, missing values are placed according to\nthe `nulls` field (`last` or `first`), and their placement won't depend on the `order`\nfield. Note that the number zero, empty strings, and empty lists are all considered\n_not_ null.\n\n#### Example\n\n```json\n{\n \"sort\": [\n {\n \"property\" : [\"createdTime\"],\n \"order\": \"desc\",\n \"nulls\": \"last\"\n },\n {\n \"property\" : [\"metadata\", \"\"]\n }\n ]\n}\n```\n\n\n#### Properties\n\nYou can sort on the following properties:\n\n| Property |\n|-----------------------------------|\n| `[\"assetId\"]` |\n| `[\"createdTime\"]` |\n| `[\"dataSetId\"]` |\n| `[\"description\"]` |\n| `[\"externalId\"]` |\n| `[\"lastUpdatedTime\"]` |\n| `[\"metadata\", \"\"]` |\n| `[\"name\"]` |\n\n#### Limits\n\nThe `sort` array must contain 1 to 2 elements.\n
", "operationId": "advancedListSequences", "requestBody": { "description": "Retrieves a list of sequences matching the given criteria.", @@ -10283,7 +10295,7 @@ "Vision" ], "summary": "Extract features from images", - "description": "Start an asynchronous prediction job for extracting features such as text, asset tags or industrial objects from images.\nThe response of the POST request contains a job ID, which can be used to make subsequent (GET) calls \nto check the status and retrieve the results of the job \n(see [Retrieve results from a feature extraction job](getVisionExtract)).\n\nIt is possible to have up to 20 concurrent jobs per CDF project.\n\nThe files referenced by `items` in the request body must fulfill the following requirements:\n\n* Must have file extension: `.jpeg`, `.jpg` or `.png`\n* Must have `image/png` or `image/jpeg` as `mimeType`\n\nNew feature extractors may be added in the future.\n", + "description": "Start an asynchronous prediction job for extracting features such as text, asset tags or industrial objects from images.\nThe response of the POST request contains a job ID, which can be used to make subsequent (GET) calls\nto check the status and retrieve the results of the job\n(see [Retrieve results from a feature extraction job](getVisionExtract)).\n\nIt is possible to have up to 20 concurrent jobs per CDF project.\n\nThe files referenced by `items` in the request body must fulfill the following requirements:\n\n* Must have file extension: `.jpeg`, `.jpg` or `.png`\n* Must have `image/png` or `image/jpeg` as `mimeType`\n\nNew feature extractors may be added in the future.\n", "operationId": "postVisionExtract", "parameters": [ { @@ -10360,8 +10372,14 @@ } }, "/context/vision/segment": {}, + "/api/v1/projects/{projectName}/ai/services/availability": {}, + "/api/v1/projects/{projectName}/ai/tools/documents/ask": {}, "/api/v1/projects/{projectName}/ai/chat/completions": {}, + "/api/v1/projects/{projectName}/ai/embeddings": {}, + "/api/v1/projects/{projectName}/ai/tools/documents/summarize": {}, + "/api/v1/projects/{projectName}/ai/tools/graphql/completions": {}, "/api/v1/projects/{projectName}/ai/tools/pythonsdk/completions": {}, + "/api/v1/projects/{projectName}/ai/tools/pythonsdk/edit": {}, "/documents/search": { "post": { "tags": [ @@ -10390,7 +10408,8 @@ } }, "x-capability": [ - "filesAcl:READ" + "filesAcl:READ", + null ], "x-code-samples": [ { @@ -11211,7 +11230,7 @@ "Geospatial" ], "summary": "Filter all features", - "description": "List features based on the feature property filter passed in the body of the request. This operation supports pagination by cursor.", + "description": "List features based on the feature property filter passed in the body of the request. This operation supports pagination by cursor.", "operationId": "listFeatures", "parameters": [ { @@ -11400,7 +11419,7 @@ "Geospatial" ], "summary": "Search features", - "description": "Search for features based on the feature property filter passed in the body of the request. The result of the search is limited to a maximum of 1000 items. Results in excess of the limit are truncated. This means that the complete result set of the search cannot be retrieved with this method. However, for a given unmodified feature collection, the result of the search is deterministic and does not change over time.", + "description": "Search for features based on the feature property filter passed in the body of the request. The result of the search is limited to a maximum of 1000 items. Results in excess of the limit are truncated. This means that the complete result set of the search cannot be retrieved with this method. However, for a given unmodified feature collection, the result of the search is deterministic and does not change over time.", "operationId": "searchFeatures", "parameters": [ { @@ -17659,7 +17678,7 @@ "User profiles" ], "operationId": "listUserProfiles", - "summary": "List all user profiles", + "summary": "List all user profiles in the current project", "description": "List all user profiles in the current project. This operation supports pagination by cursor.\nThe results are ordered alphabetically by name.", "parameters": [ { @@ -17671,7 +17690,7 @@ }, { "name": "limit", - "description": "Limits the number of results to be returned. The server returns no more than 1000 results even if the specified limit is larger. The default limit is 25.", + "description": "Limits the number of results to be returned. The server returns no more than 1000 results even if the specified limit is larger. The default limit is 25.", "in": "query", "schema": { "type": "integer", @@ -17720,7 +17739,7 @@ ], "operationId": "getRequesterUserProfile", "summary": "Get the user profile of the principal issuing the request", - "description": "Retrieves the user profile of the principal issuing the request.\nIf a principal doesn't have a user profile, you get a not found (404) response code.", + "description": "Retrieves the user profile of the principal issuing the request.\nIf a principal doesn't have a user profile, you get a not found (404) response code.\nNote: User profiles are created asyncronously, so the endpoint might return 404 for\na new principal for a while (usually seconds) until the profile has been created.", "responses": { "200": { "description": "", @@ -17766,7 +17785,7 @@ "User profiles" ], "operationId": "getUserProfilesByIds", - "summary": "Retrieve one or more user profiles by ID", + "summary": "Retrieve profiles by ID in the current project", "description": "Retrieve one or more user profiles indexed by the user identifier in the same CDF project.", "requestBody": { "description": "Specify a maximum of 1000 unique IDs.", @@ -17823,8 +17842,8 @@ "User profiles" ], "operationId": "userProfilesSearch", - "summary": "Search user profiles", - "description": "Search user profiles in the current project. The result set ordering and match criteria \nthreshold may change over time. This operation does not support pagination.", + "summary": "Search user profiles in the current project", + "description": "Search user profiles in the current project. The result set ordering and match criteria\nthreshold may change over time. This operation does not support pagination.", "requestBody": { "description": "Query for user profile search.", "content": { @@ -17918,7 +17937,7 @@ "items": { "type": "array", "items": { - "$ref": "#/components/schemas/Workflow" + "$ref": "#/components/schemas/WorkflowView" } } } @@ -17977,7 +17996,7 @@ "items": { "type": "array", "items": { - "$ref": "#/components/schemas/Workflow" + "$ref": "#/components/schemas/WorkflowView" } }, "nextCursor": { @@ -18096,7 +18115,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/Workflow" + "$ref": "#/components/schemas/WorkflowView" } } } @@ -18381,7 +18400,7 @@ "post": { "operationId": "TriggerRunOfSpecificVersionOfWorkflow", "summary": "Run a workflow", - "description": "Trigger an execution of a specific version of a workflow.", + "description": "Start an execution of a specific version of a workflow.", "tags": [ "Workflow executions" ], @@ -18535,7 +18554,7 @@ "post": { "operationId": "WorkflowExecutionCancellation", "summary": "Cancel a workflow execution", - "description": "Stops the specified execution from starting new workflow tasks and sets the workflow execution status to `TERMINATED`. Already running tasks will be marked as CANCELED. Note that the actions taken by the canceled tasks won't be stopped, and these need to be canceled separately if desired. For example, to cancel a running transformation, use the [/transformations/cancel](#/Transformations/postApiV1ProjectsProjectTransformationsCancel) endpoint.", + "description": "Stops the specified execution from starting new workflow tasks and sets the workflow execution status to `TERMINATED`. Already running tasks will be marked as CANCELED. Note that the actions taken by the canceled tasks won't be stopped, and these need to be canceled separately if desired. For example, to cancel a running transformation, use the [/transformations/cancel](#/Transformations/postApiV1ProjectsProjectTransformationsCancel) endpoint.", "tags": [ "Workflow executions" ], @@ -18641,7 +18660,7 @@ "post": { "operationId": "UpdateTaskStatus", "summary": "Update task status", - "description": "Update the status of a task that is defined to be completed asynchronously (i.e. task parameter `isAsyncComplete` is set to `true`). The status can be set to `COMPLETED`, `FAILED`, or `FAILED_WITH_TERMINAL_ERROR`.\n\n - `COMPLETED`: the workflow execution will continue according to the workflow definition. \n - `FAILED`: the task will be retried according to the `retries` parameter for the task in the workflow definition. \n - `FAILED_WITH_TERMINAL_ERROR`: the task won't be retried. \nIf an `output` is provided, it'll be merged with the original output of the task.", + "description": "Update the status of a task that is defined to be completed asynchronously (i.e. task parameter `isAsyncComplete` is set to `true`). The status can be set to `COMPLETED`, `FAILED`, or `FAILED_WITH_TERMINAL_ERROR`.\n\n - `COMPLETED`: the workflow execution will continue according to the workflow definition.\\\n - `FAILED`: the task will be retried according to the `retries` parameter for the task in the workflow definition.\\\n - `FAILED_WITH_TERMINAL_ERROR`: the task won't be retried.\\\nIf an `output` is provided, it'll be merged with the original output of the task.", "tags": [ "Tasks" ], @@ -18700,6 +18719,300 @@ ] } }, + "/workflows/triggers": { + "get": { + "operationId": "FetchAllTriggers", + "summary": "List triggers", + "description": "List all triggers. The results are sorted by `externalId` in ascending order.", + "tags": [ + "Workflow triggers" + ], + "x-capability": [ + "workflowOrchestrationACL:READ" + ], + "parameters": [ + { + "name": "limit", + "in": "query", + "required": false, + "schema": { + "$ref": "#/components/schemas/limit" + } + }, + { + "name": "cursor", + "in": "query", + "required": false, + "schema": { + "$ref": "#/components/schemas/cursor" + } + } + ], + "responses": { + "200": { + "description": "List of triggers", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TriggerView" + } + }, + "nextCursor": { + "$ref": "#/components/schemas/nextCursor" + } + } + } + } + } + } + } + }, + "post": { + "operationId": "CreateOrUpdateTriggers", + "summary": "Create or update triggers", + "description": "Create or update a trigger.", + "tags": [ + "Workflow triggers" + ], + "x-capability": [ + "workflowOrchestrationACL:WRITE" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "items": { + "type": "array", + "minItems": 1, + "maxItems": 1, + "items": { + "type": "object", + "properties": { + "externalId": { + "$ref": "#/components/schemas/TriggerExternalId" + }, + "triggerRule": { + "$ref": "#/components/schemas/TriggerRule" + }, + "input": { + "$ref": "#/components/schemas/ExecutionInput" + }, + "workflowExternalId": { + "$ref": "#/components/schemas/WorkflowExternalId" + }, + "workflowVersion": { + "$ref": "#/components/schemas/Version" + }, + "authentication": { + "$ref": "#/components/schemas/Authentication" + } + }, + "required": [ + "externalId", + "triggerRule", + "workflowExternalId", + "workflowVersion", + "authentication" + ] + } + } + } + } + } + } + }, + "responses": { + "200": { + "description": "List of created or updated triggers", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TriggerView" + } + } + } + } + } + } + } + } + } + }, + "/workflows/triggers/delete": { + "post": { + "operationId": "deleteTriggers", + "summary": "Delete triggers", + "description": "Delete a trigger.", + "tags": [ + "Workflow triggers" + ], + "x-capability": [ + "workflowOrchestrationACL:WRITE" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "items": { + "type": "array", + "minItems": 1, + "maxItems": 1, + "items": { + "type": "object", + "properties": { + "externalId": { + "$ref": "#/components/schemas/TriggerExternalId" + } + }, + "required": [ + "externalId" + ] + } + } + } + } + } + } + }, + "responses": { + "200": { + "$ref": "#/components/responses/EmptyResponse" + } + } + } + }, + "/workflows/triggers/{triggerExternalId}/history": { + "get": { + "parameters": [ + { + "name": "triggerExternalId", + "in": "path", + "required": true, + "schema": { + "$ref": "#/components/schemas/TriggerExternalId" + } + }, + { + "name": "limit", + "in": "query", + "required": false, + "schema": { + "$ref": "#/components/schemas/limit" + } + }, + { + "name": "cursor", + "in": "query", + "required": false, + "schema": { + "$ref": "#/components/schemas/cursor" + } + } + ], + "operationId": "getTriggerHistory", + "summary": "Get the run history of a trigger", + "description": "Get information about every run of a trigger. This includes timing information and a reference to the started execution (or an explanation as to why it failed). The returned items are sorted by `fireTime` in descending order (newest first), followed by `externalId` in ascending order.", + "tags": [ + "Workflow triggers" + ], + "x-capability": [ + "workflowOrchestrationACL:READ" + ], + "responses": { + "200": { + "description": "A list of runs of the trigger", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "type": "object", + "properties": { + "fireTime": { + "type": "integer", + "minimum": 0, + "format": "int64", + "description": "The time that the trigger attempted to start the execution. Provided as epoch time in milliseconds (UTC)." + }, + "externalId": { + "$ref": "#/components/schemas/TriggerExternalId" + }, + "workflowExternalId": { + "$ref": "#/components/schemas/WorkflowExternalId" + }, + "workflowVersion": { + "$ref": "#/components/schemas/Version" + }, + "workflowExecutionId": { + "anyOf": [ + { + "type": "string", + "maxLength": 36, + "minLength": 36 + }, + { + "type": "null" + } + ], + "description": "UUIDv4 identifier for a workflow execution.", + "example": "059edaa4-a17a-4102-910e-2c3591500cce" + }, + "status": { + "type": "string", + "enum": [ + "success", + "failed" + ], + "description": "status of the trigger run, a being successful means that the execution has started, failure denotes that an execution could not be started." + }, + "reasonForFailure": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "a human readable reason for the failure, null if the trigger run was successful" + } + }, + "required": [ + "fireTime", + "externalId", + "workflowExternalId", + "workflowVersion", + "status" + ] + } + } + } + } + } + } + } + } + } + }, "/hostedextractors/destinations": { "get": { "tags": [ @@ -19678,2728 +19991,3112 @@ "summary": "Update Mappings" } }, - "/simulators/run": {}, - "/simulators/runs/list": {}, - "/simulators/run/callback": {}, - "/simulators/runs/byids": {}, - "/simulators/runs/data/list": {}, - "/simulators/integrations/list": {}, - "/simulators/integrations/update": {}, - "/simulators/integrations": {}, - "/simulators/models": {}, - "/simulators/models/list": {}, - "/simulators/models/delete": {}, - "/simulators/models/update": {}, - "/simulators/models/byids": {}, - "/simulators/models/revisions": {}, - "/simulators/models/revisions/list": {}, - "/simulators/models/revisions/byids": {}, - "/simulators/models/revisions/update": {}, - "/simulators/routines": {}, - "/simulators/routines/list": {}, - "/simulators/routines/delete": {}, - "/simulators/routines/revisions": {}, - "/simulators/routines/revisions/list": {}, - "/simulators/routines/revisions/byids": {}, - "/simulators/logs/update": {}, - "/simulators/logs/byids": {}, - "/simulators/list": {}, - "/simulators": {}, - "/simulators/delete": {}, - "/simulators/update": {}, - "/units/byids": { + "/postgresgateway": { + "get": { + "tags": [ + "Postgres Gateway Users" + ], + "operationId": "list_users", + "x-capability": [ + "postgresGateway:READ" + ], + "parameters": [ + { + "$ref": "#/components/parameters/100Limit_" + }, + { + "$ref": "#/components/parameters/Cursor" + } + ], + "description": "List all users in a given project. If more than `limit` users exist, a cursor for pagination will be returned with the response.", + "responses": { + "200": { + "description": "List of users paginated", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ItemsWithCursor_User_" + } + } + } + }, + "400": { + "$ref": "#/components/responses/400ErrorResponse" + }, + "422": { + "$ref": "#/components/responses/ValidationError_" + } + }, + "summary": "List users" + }, "post": { "tags": [ - "Units" + "Postgres Gateway Users" ], - "summary": "Retrieve units by external IDs", - "description": "Retrieves one or more units by external ID. The response returns the units in the same order as in the request.", - "operationId": "byIdsUnits", + "operationId": "create_users", + "x-capability": [ + "postgresGateway:WRITE" + ], + "description": "Create postgres users.", "requestBody": { + "required": true, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/RestrictedItemList_ExternalIdRef_" + "$ref": "#/components/schemas/Items_CreateUser_" } } }, - "required": true + "description": "List of postgres users to create" }, "responses": { "200": { - "description": "Response with a list of units", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ViewList_Unit_" + "$ref": "#/components/schemas/ItemsWithCursor_UserCreated_" } } - } + }, + "description": "List of created users" }, "400": { - "description": "Bad Request", + "description": "Response of a failed request", + "$ref": "#/components/responses/400ErrorResponse" + }, + "422": { + "$ref": "#/components/responses/ValidationError_" + } + }, + "summary": "Create users" + } + }, + "/postgresgateway/list": { + "post": { + "summary": "Filter users", + "tags": [ + "Postgres Gateway Users" + ], + "operationId": "filter_users", + "description": "List all postgres users for a given project. If more than `limit` users exist, a cursor for pagination will be returned with the response.", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FilterUsers" + } + } + } + }, + "responses": { + "200": { + "description": "List of users paginated", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/APIError" + "$ref": "#/components/schemas/ItemsWithCursor_User_" } } } + }, + "400": { + "$ref": "#/components/responses/400ErrorResponse" + }, + "422": { + "$ref": "#/components/responses/ErrorResponse", + "description": "Validation Error" + } + } + } + }, + "/postgresgateway/byids": { + "post": { + "tags": [ + "Postgres Gateway Users" + ], + "operationId": "retreive_users", + "x-capability": "postgresGateway:READ", + "description": "Retreive a list of postgres users by their usernames, optionally ignoring unknown usernames", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ItemsWithIgnoreUnknown_Username_" + } + } } }, - "x-code-samples": [ - { - "lang": "JavaScript", - "label": "JavaScript SDK", - "source": "const units = await client.units.retrieve([{ externalId: 'temperature:deg_c' }, { externalId: 'pressure:bar' }]);" + "responses": { + "200": { + "description": "List of users retrieved by their usernames", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ItemsWithoutCursor_User_" + } + } + } }, - { - "lang": "Python", - "label": "Python SDK", - "source": "res = client.units.retrieve('temperature:deg_c')\n\nres = client.units.retrieve(['temperature:deg_c', 'pressure:bar'])\n" + "400": { + "$ref": "#/components/responses/400ErrorResponse", + "description": "Response of a failed request" + }, + "422": { + "$ref": "#/components/responses/ValidationError_" } - ] + }, + "summary": "Retrieve users" } }, - "/units/systems": { - "get": { + "/postgresgateway/update": { + "post": { "tags": [ - "Unit Systems" + "Postgres Gateway Users" ], - "summary": "List all unit systems", - "description": "List all unit systems.", - "operationId": "listUnitSystems", + "operationId": "update_users", + "x-capability": [ + { + "postgresGateway": "postgresGateway:WRITE" + } + ], + "description": "Update postgres users", + "requestBody": { + "required": true, + "description": "Users to update", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Items_UserUpdate_" + } + } + } + }, "responses": { "200": { - "description": "Response with a list of unit systems", + "description": "Returns users with updates", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ViewList_UnitSystem_" + "$ref": "#/components/schemas/ItemsWithCursor_User_" } } } + }, + "400": { + "$ref": "#/components/responses/400ErrorResponse" + }, + "422": { + "$ref": "#/components/responses/ValidationError_" } }, - "x-code-samples": [ + "summary": "Update users" + } + }, + "/postgresgateway/delete": { + "post": { + "tags": [ + "Postgres Gateway Users" + ], + "operationId": "delete_users", + "x-capability": [ { - "lang": "JavaScript", - "label": "JavaScript SDK", - "source": "const units = await client.units.listUnitSystems();" + "postgresGateway": "WRITE" + } + ], + "description": "Delete postgres users", + "requestBody": { + "required": true, + "description": "Postgres users to delete", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ItemsWithIgnoreUnknown_Username_" + } + } + } + }, + "responses": { + "200": { + "$ref": "#/components/responses/EmptyResponse" }, - { - "lang": "Python", - "label": "Python SDK", - "source": "res = client.units.systems.list()\n" + "400": { + "$ref": "#/components/responses/400ErrorResponse" + }, + "422": { + "$ref": "#/components/responses/ValidationError_" } - ] + }, + "summary": "Delete users" } }, - "/units/{externalId}": { + "/postgresgateway/tables/{username}": { "get": { "tags": [ - "Units" + "Postgres Gateway Tables" + ], + "operationId": "list_tables", + "x-capability": [ + "postgresGateway:READ" ], - "summary": "Retrieve unit by external ID", - "description": "Retrieve a single unit by its external ID.", - "operationId": "getUnit", "parameters": [ { - "name": "externalId", - "in": "path", - "required": true, + "$ref": "#/components/parameters/Username" + }, + { + "$ref": "#/components/parameters/100Limit_" + }, + { + "$ref": "#/components/parameters/Cursor" + }, + { + "in": "query", + "name": "includeBuiltIns", + "description": "Determines if API should return built-in tables or not", + "required": false, "schema": { "type": "string", - "description": "External ID of the unit", - "title": "Externalid" - }, - "description": "External ID of the unit" + "enum": [ + "yes", + "no" + ], + "default": "no" + } } ], + "description": "List all tables in a given project. If more than `limit` tables exist, a cursor for pagination will be returned with the response.", "responses": { "200": { - "description": "Response with a single unit", + "description": "List of tables paginated", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ViewList_Unit_" + "$ref": "#/components/schemas/ItemsWithCursor_Table_" } } } }, "400": { + "$ref": "#/components/responses/400ErrorResponse" + }, + "422": { + "$ref": "#/components/responses/ValidationError_" + } + }, + "summary": "List tables" + }, + "post": { + "tags": [ + "Postgres Gateway Tables" + ], + "operationId": "create_tables", + "x-capability": [ + "postgresGateway:WRITE" + ], + "parameters": [ + { + "$ref": "#/components/parameters/Username" + } + ], + "description": "Create up to 10 tables.", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Items_CreateTable_" + } + } + }, + "description": "List of tables to create" + }, + "responses": { + "200": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/APIError" + "$ref": "#/components/schemas/ItemsWithoutCursor_TableCreated_" } } }, - "description": "Bad Request" + "description": "List of created tables" + }, + "400": { + "description": "Response of a failed request", + "$ref": "#/components/responses/400ErrorResponse" + }, + "422": { + "$ref": "#/components/responses/ValidationError_" } - } + }, + "summary": "Create tables" } }, - "/units": { - "get": { + "/postgresgateway/tables/{username}/byids": { + "post": { "tags": [ - "Units" + "Postgres Gateway Tables" ], - "summary": "List all units", - "description": "List all units.", - "operationId": "listUnits", + "operationId": "retrieve_tables", + "parameters": [ + { + "$ref": "#/components/parameters/Username" + } + ], + "x-capability": "postgresGateway:READ", + "description": "Retreive a list of postgres tables for a user by their table names, optionally ignoring unknown table names", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ItemsWithIgnoreUnknown_Tablename_" + } + } + } + }, "responses": { "200": { - "description": "Response with a list of units", + "description": "List postgres tables by table names", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ViewList_Unit_" + "$ref": "#/components/schemas/ItemsWithoutCursor_Table_" } } } + }, + "400": { + "$ref": "#/components/responses/400ErrorResponse", + "description": "Response of a failed request" + }, + "422": { + "$ref": "#/components/responses/ValidationError_" } }, - "x-code-samples": [ - { - "lang": "JavaScript", - "label": "JavaScript SDK", - "source": "const units = await client.units.list();" - }, + "summary": "Retrieve tables" + } + }, + "/postgresgateway/tables/{username}/delete": { + "post": { + "tags": [ + "Postgres Gateway Tables" + ], + "operationId": "delete_tables", + "parameters": [ { - "lang": "Python", - "label": "Python SDK", - "source": "res = client.units.list()\n" + "$ref": "#/components/parameters/Username" } - ] - } - } - }, - "components": { - "securitySchemes": { - "oidc-token": { - "type": "http", - "scheme": "bearer", - "bearerFormat": "OpenID Connect or OAuth2 token", - "description": "Access token issued by the CDF project's configured identity provider. Access token must be an OpenID Connect token, and the project must be configured to accept OpenID Connect tokens. Use a header key of 'Authorization' with a value of 'Bearer $accesstoken'. The token can be obtained through any flow supported by the identity provider." - }, - "oauth2-client-credentials": { - "type": "oauth2", - "description": "Access token issued by the CDF project's configured identity provider. Access token must be an OpenID Connect token, and the project must be configured to accept OpenID Connect tokens. Use a header key of 'Authorization' with a value of 'Bearer $accesstoken'. The token can be obtained through any flow supported by the identity provider.", - "flows": { - "clientCredentials": { - "tokenUrl": "https://your-idps.token.url/", - "scopes": { - "default": "https://{cluster}.cognitedata.com/.default" - } + ], + "x-capability": [ + { + "postgresGateway": "WRITE" } - } - }, - "oauth2-auth-code": { - "type": "oauth2", - "description": "Access token issued by the CDF project's configured identity provider. Access token must be an OpenID Connect token, and the project must be configured to accept OpenID Connect tokens. Use a header key of 'Authorization' with a value of 'Bearer $accesstoken'. The token can be obtained through any flow supported by the identity provider.", - "flows": { - "authorizationCode": { - "authorizationUrl": "https://your-idps.authorization.url/", - "tokenUrl": "https://your-idps.token.url/", - "scopes": { - "default": "https://{cluster}.cognitedata.com/.default" + ], + "description": "Delete up to 10 tables", + "requestBody": { + "required": true, + "description": "Tables to delete", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ItemsWithIgnoreUnknown_Tablename_" + } } } - } - }, - "oauth2-open-industrial-data": { - "type": "oauth2", - "description": "Auth flow for Open Industrial Data. Get your client secret from https://hub.cognite.com/open-industrial-data-211.", - "flows": { - "clientCredentials": { - "tokenUrl": "https://login.microsoftonline.com/48d5043c-cf70-4c49-881c-c638f5796997/oauth2/v2.0/token", - "scopes": { - "default": "https://api.cognitedata.com/.default" - } + }, + "responses": { + "200": { + "$ref": "#/components/responses/EmptyResponse", + "description": "Empty response" + }, + "400": { + "$ref": "#/components/responses/400ErrorResponse" + }, + "422": { + "$ref": "#/components/responses/ValidationError_" } - } - }, - "token": { - "type": "http", - "description": "Users log in via an OpenID/OAuth flow. Use the /login/redirect flow to obtain a bearer access token. Use a header key of 'Authorization' with a value of 'Bearer: $accesstoken'", - "scheme": "bearer" + }, + "summary": "Delete tables" } }, - "schemas": { - "TokenInspectionResponse": { - "type": "object", - "required": [ - "subject", - "projects", - "capabilities" + "/writeback/sap/instances": { + "get": { + "tags": [ + "SAP Instances" ], - "properties": { - "subject": { - "type": "string", - "description": "Subject (sub claim) of JWT" - }, - "projects": { - "$ref": "#/components/schemas/Projects" + "operationId": "list_instances", + "x-capability": [ + "SapWritebackAcl:READ" + ], + "parameters": [ + { + "$ref": "#/components/parameters/Writeback100Limit" }, - "capabilities": { - "$ref": "#/components/schemas/Capabilities" + { + "$ref": "#/components/parameters/Cursor" } - } - }, - "Projects": { - "type": "array", - "title": "projects", - "items": { - "type": "object", - "required": [ - "projectUrlName", - "groups" - ], - "properties": { - "projectUrlName": { - "type": "string", - "description": "Project url name" - }, - "groups": { - "type": "array", - "description": "Group IDs", - "items": { - "type": "integer", - "description": "group ids", - "format": "int64" + ], + "description": "List all SAP instances in a given CDF project. If more instances exist than what the limit specifies, a pagination cursor is returned in the response body.", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ItemsWithCursor_Instance_" + } } - } + }, + "description": "List of SAP instances, and an optional cursor." + }, + "400": { + "$ref": "#/components/responses/400ErrorResponse" + }, + "422": { + "$ref": "#/components/responses/ErrorResponse", + "description": "Validation Error" } - } - }, - "Capabilities": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Capability" - } + }, + "summary": "List SAP Instances" }, - "Capability": { - "type": "object", - "oneOf": [ - { - "title": "Groups Capability", - "properties": { - "groupsAcl": { - "$ref": "#/components/schemas/cognitegroups_aclAcl" - }, - "projectScope": { - "$ref": "#/components/schemas/ProjectScope" + "post": { + "tags": [ + "SAP Instances" + ], + "operationId": "create_instances", + "x-capability": [ + "SapWritebackAcl:WRITE" + ], + "description": "Create up to 100 SAP instances.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Items_CreateInstance_" } } }, - { - "title": "Assets Capability", - "properties": { - "assetsAcl": { - "$ref": "#/components/schemas/cogniteassets_aclAcl" - }, - "projectScope": { - "$ref": "#/components/schemas/ProjectScope" + "required": true, + "description": "Instance to create." + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Items_Instance_" + } } - } + }, + "description": "List of created instances" }, - { - "title": "Events Capability", - "properties": { - "eventsAcl": { - "$ref": "#/components/schemas/cogniteevents_aclAcl" - }, - "projectScope": { - "$ref": "#/components/schemas/ProjectScope" - } - } + "400": { + "$ref": "#/components/responses/400ErrorResponse", + "description": "Response for a failed request" }, - { - "title": "Files Capability", - "properties": { - "filesAcl": { - "$ref": "#/components/schemas/cognitefiles_aclAcl" - }, - "projectScope": { - "$ref": "#/components/schemas/ProjectScope" + "422": { + "$ref": "#/components/responses/WritebackValidationError" + } + }, + "summary": "Create SAP Instances" + } + }, + "/writeback/sap/instances/byids": { + "post": { + "tags": [ + "SAP Instances" + ], + "operationId": "retrieve_instances", + "x-capability": [ + "SapWritebackAcl:READ" + ], + "description": "Retrieve a list of up to 100 SAP instances by their external ID, optionally ignoring unknown IDs.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WritebackItemsWithIgnoreUnknownIds_ExternalId_" } } }, - { - "title": "Projects Capability", - "properties": { - "projectsAcl": { - "$ref": "#/components/schemas/cogniteprojects_aclAcl" - }, - "projectScope": { - "$ref": "#/components/schemas/ProjectScope" + "required": true, + "description": "List of external IDs of SAP instances to retrieve." + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Items_Instance_" + } } - } + }, + "description": "List of retrieved instances." }, - { - "title": "Security Category Capability", - "properties": { - "securityCategoriesAcl": { - "$ref": "#/components/schemas/cognitesecuritycategories_aclAcl" - }, - "projectScope": { - "$ref": "#/components/schemas/ProjectScope" - } - } + "400": { + "$ref": "#/components/responses/400ErrorResponse" }, - { - "title": "Raw Capability", - "properties": { - "rawAcl": { - "$ref": "#/components/schemas/cogniteraw_aclAcl" - }, - "projectScope": { - "$ref": "#/components/schemas/ProjectScope" + "422": { + "$ref": "#/components/responses/WritebackValidationError" + } + }, + "summary": "Retrieve SAP Instances" + } + }, + "/writeback/sap/instances/delete": { + "post": { + "tags": [ + "SAP Instances" + ], + "operationId": "delete_instances", + "x-capability": [ + "SapWritebackAcl:WRITE" + ], + "description": "Delete a list of SAP instance configurations by their external ID. This operation will fail if any destination in the request is associated with an SAP endpoint configuration, unless the `force` query parameter is set to `true`.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WritebackItemsWithIgnoreUnknownIdsAndForce_ExternalId_" } } }, - { - "title": "TimeSeries Capability", - "properties": { - "timeSeriesAcl": { - "$ref": "#/components/schemas/cognitetimeseries_aclAcl" - }, - "projectScope": { - "$ref": "#/components/schemas/ProjectScope" - } - } + "required": true, + "description": "List of SAP instance configuration external IDs to delete." + }, + "responses": { + "200": { + "$ref": "#/components/responses/EmptyResponse", + "description": "Empty response" }, - { - "title": "Threed Capability", - "properties": { - "threedAcl": { - "$ref": "#/components/schemas/cognitethreed_aclAcl" - }, - "projectScope": { - "$ref": "#/components/schemas/ProjectScope" - } - } + "400": { + "$ref": "#/components/responses/400ErrorResponse" }, + "422": { + "$ref": "#/components/responses/WritebackValidationError" + } + }, + "summary": "Delete SAP Instances" + } + }, + "/writeback/sap/endpoints": { + "get": { + "tags": [ + "SAP Endpoints" + ], + "operationId": "list_endpoints", + "x-capability": [ + "SapWritebackAcl:READ" + ], + "parameters": [ { - "title": "Sequences Capability", - "properties": { - "sequencesAcl": { - "$ref": "#/components/schemas/cognitesequences_aclAcl" - }, - "projectScope": { - "$ref": "#/components/schemas/ProjectScope" - } - } + "$ref": "#/components/parameters/Writeback100Limit" }, { - "title": "Labels Capability", - "properties": { - "labelsAcl": { - "$ref": "#/components/schemas/cognitelabels_aclAcl" - }, - "projectScope": { - "$ref": "#/components/schemas/ProjectScope" + "$ref": "#/components/parameters/Cursor" + } + ], + "description": "List all SAP endpoints in a given CDF project. If more instances exist than what the limit specifies, a pagination cursor is returned in the response body.", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ItemsWithCursor_Endpoint_" + } } - } + }, + "description": "List of endpoints and an optional cursor." }, - { - "title": "Analytics Capability", - "properties": { - "analyticsAcl": { - "$ref": "#/components/schemas/cogniteanalytics_aclAcl" - }, - "projectScope": { - "$ref": "#/components/schemas/ProjectScope" - } - } + "400": { + "$ref": "#/components/responses/400ErrorResponse" }, - { - "title": "Digital Twin Capability", - "properties": { - "digitalTwinAcl": { - "$ref": "#/components/schemas/cognitedigitaltwin_aclAcl" - }, - "projectScope": { - "$ref": "#/components/schemas/ProjectScope" + "422": { + "$ref": "#/components/responses/ErrorResponse", + "description": "Validation Error" + } + }, + "summary": "List SAP Endpoints" + }, + "post": { + "tags": [ + "SAP Endpoints" + ], + "operationId": "create_endpoints", + "x-capability": [ + "SapWritebackAcl:WRITE" + ], + "description": "Create up to 100 SAP endpoints.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Items_CreateEndpoint_" } } }, - { - "title": "Data Modeling Schema Capability", - "properties": { - "digitalTwinAcl": { - "$ref": "#/components/schemas/cognitedatamodels_aclAcl" - }, - "projectScope": { - "$ref": "#/components/schemas/ProjectScope" + "required": true, + "description": "Endpoint to create." + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Items_Endpoint_" + } } - } + }, + "description": "List of created endpoints" }, - { - "title": "Data Modeling Instances Capability", - "properties": { - "digitalTwinAcl": { - "$ref": "#/components/schemas/cognitedatamodelinstances_aclAcl" - }, - "projectScope": { - "$ref": "#/components/schemas/ProjectScope" - } - } + "400": { + "$ref": "#/components/responses/400ErrorResponse", + "description": "Response for a failed request" }, - { - "title": "Relationships Capability", - "properties": { - "relationshipsAcl": { - "$ref": "#/components/schemas/cogniterelationships_aclAcl" - }, - "projectScope": { - "$ref": "#/components/schemas/ProjectScope" + "422": { + "$ref": "#/components/responses/WritebackValidationError" + } + }, + "summary": "Create SAP Endpoints" + } + }, + "/writeback/sap/endpoints/byids": { + "post": { + "tags": [ + "SAP Endpoints" + ], + "operationId": "retrieve_endpoints", + "x-capability": [ + "SapWritebackAcl:READ" + ], + "description": "Retrieve a list of up to 100 SAP endpoints by their external ID, optionally ignoring unknown IDs.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WritebackItemsWithIgnoreUnknownIds_ExternalId_" } } }, - { - "title": "Datasets Capability", - "properties": { - "datasetsAcl": { - "$ref": "#/components/schemas/cognitedatasets_aclAcl" - }, - "projectScope": { - "$ref": "#/components/schemas/ProjectScope" + "required": true, + "description": "List of external IDs of SAP endpoint configurations to retrieve." + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Items_Endpoint_" + } } - } + }, + "description": "List of retrieved SAP endpoint configurations." }, - { - "title": "Seismic Capability", - "properties": { - "seismicAcl": { - "$ref": "#/components/schemas/cogniteseismic_aclAcl" - }, - "projectScope": { - "$ref": "#/components/schemas/ProjectScope" - } - } + "400": { + "$ref": "#/components/responses/400ErrorResponse" }, - { - "title": "Types Capability", - "properties": { - "typesAcl": { - "$ref": "#/components/schemas/cognitetypes_aclAcl" - }, - "projectScope": { - "$ref": "#/components/schemas/ProjectScope" + "422": { + "$ref": "#/components/responses/WritebackValidationError" + } + }, + "summary": "Retrieve SAP Endpoints" + } + }, + "/writeback/sap/endpoints/delete": { + "post": { + "tags": [ + "SAP Endpoints" + ], + "operationId": "delete_endpoints", + "x-capability": [ + "SapWritebackAcl:WRITE" + ], + "description": "Delete a list of SAP endpoint configurations by their external ID. This operation will fail if any endpoint in the request is associated to a SAP instance configuration.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WritebackItemsWithIgnoreUnknownIds_ExternalId_" } } }, - { - "title": "Functions Capability", - "properties": { - "functionsAcl": { - "$ref": "#/components/schemas/functions_aclAcl" - }, - "projectScope": { - "$ref": "#/components/schemas/ProjectScope" - } - } + "required": true, + "description": "A list of External IDs for SAP endpoint configurations to delete." + }, + "responses": { + "200": { + "$ref": "#/components/responses/EmptyResponse", + "description": "Empty response" }, - { - "title": "Extraction Pipelines Capability", - "properties": { - "extractionpipelinesAcl": { - "$ref": "#/components/schemas/extractionpipelines_aclAcl" - }, - "projectScope": { - "$ref": "#/components/schemas/ProjectScope" - } - } + "400": { + "$ref": "#/components/responses/400ErrorResponse" }, - { - "title": "Extraction Pipeline Runs Capability", - "properties": { - "extractionrunsAcl": { - "$ref": "#/components/schemas/extractionruns_aclAcl" - }, - "projectScope": { - "$ref": "#/components/schemas/ProjectScope" + "422": { + "$ref": "#/components/responses/WritebackValidationError" + } + }, + "summary": "Delete SAP Endpoints" + } + }, + "/writeback/sap/endpoints/verify": { + "post": { + "tags": [ + "SAP Endpoints" + ], + "operationId": "verify_endpoints", + "x-capability": [ + "SapWritebackAcl:WRITE" + ], + "description": "Verify the connectivity between the writeback API, and the SAP endpoint destination.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WritebackExternalIdWrapper" } } + }, + "required": true, + "description": "SAP Endpoint external ID which the connection test should be verified." + }, + "responses": { + "200": { + "$ref": "#/components/responses/ConnectionCheck", + "description": "Connection Check Result" + }, + "400": { + "$ref": "#/components/responses/400ErrorResponse" + }, + "422": { + "$ref": "#/components/responses/WritebackValidationError" } - ] - }, - "ProjectScope": { - "oneOf": [ + }, + "summary": "Verify SAP Endpoint" + } + }, + "/writeback/sap/mappings": { + "get": { + "tags": [ + "Schema Mappings" + ], + "operationId": "list_schema_mappings", + "x-capability": [ + "SapWritebackAcl:READ" + ], + "description": "List all mappings in a given CDF project. If more instances exist than what the limit specifies, a pagination cursor is returned in the response body.", + "parameters": [ { - "type": "object", - "title": "allProjects", - "required": [ - "allProjects" - ], - "properties": { - "allProjects": { - "type": "object", - "description": "All projects" - } - } + "$ref": "#/components/parameters/Writeback100Limit" }, { - "type": "object", - "title": "projectsList", - "required": [ - "projects" - ], - "properties": { - "projects": { - "type": "array", - "title": "projectUrlNames", - "items": { - "$ref": "#/components/schemas/ProjectUrlName" + "$ref": "#/components/parameters/Cursor" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ItemsWithCursor_SchemaMapping_" } } - } - } - ] - }, - "ResourceDescription": { - "type": "string", - "description": "The description of the resource type.", - "maxLength": 500 - }, - "IgnoreUnknownIdsField": { - "type": "object", - "properties": { - "ignoreUnknownIds": { - "description": "Ignore IDs and external IDs that are not found", - "type": "boolean", - "default": false + }, + "description": "List of mappings and an optional cursor." + }, + "400": { + "$ref": "#/components/responses/400ErrorResponse" + }, + "422": { + "$ref": "#/components/responses/WritebackValidationError" } - } + }, + "summary": "List Mappings" }, - "Limit": { - "type": "object", - "properties": { - "limit": { - "description": "Limits the number of results to return.", - "type": "integer", - "default": 100, - "minimum": 1, - "maximum": 1000 + "post": { + "tags": [ + "Schema Mappings" + ], + "operationId": "create_schema_mappings", + "x-capability": [ + "SapWritebackAcl:WRITE" + ], + "description": "Create a maximum of 100 mappings.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Items_CreateSchemaMapping_" + } + } + }, + "required": true, + "description": "Mappings to create." + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Items_SchemaMapping_" + } + } + }, + "description": "List of created mappings" + }, + "400": { + "$ref": "#/components/responses/400ErrorResponse" + }, + "422": { + "$ref": "#/components/responses/WritebackValidationError" } - } - }, - "ExternalIdPrefixFilter": { - "description": "filter external ids starting with the prefix specified", - "type": "string", - "maxLength": 255 - }, - "DataLong": { - "type": "object", - "required": [ - "items" + }, + "summary": "Create Mappings" + } + }, + "/writeback/sap/mappings/byids": { + "post": { + "operationId": "retrieve_schema_mappings", + "x-capability": [ + "SapWritebackAcl:READ" ], - "properties": { - "items": { - "type": "array", - "example": [ - 23872937137, - 1238712837, - 128371973 - ], - "minItems": 1, - "uniqueItems": true, - "items": { - "type": "integer", - "format": "int64" + "tags": [ + "Schema Mappings" + ], + "description": "Retrieve a list of up to 100 mappings by their external ID, optionally ignoring unknown IDs.", + "parameters": [ + { + "in": "header", + "name": "cdf-version", + "required": false, + "schema": { + "title": "Cdf-Version", + "type": "string" } } - } - }, - "Error": { - "type": "object", - "required": [ - "code", - "message" ], - "description": "Cognite API error.", - "properties": { - "code": { - "type": "integer", - "description": "HTTP status code.", - "format": "int32", - "example": 401 + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WritebackItemsWithIgnoreUnknownIds_ExternalId_" + } + } }, - "message": { - "type": "string", - "description": "Error message.", - "example": "Could not authenticate." + "required": true, + "description": "List of external IDs of mappings to retrieve." + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Items_Mapping_" + } + } + }, + "description": "List of retrieved mappings." }, - "missing": { - "type": "array", - "description": "List of lookup objects that do not match any results.", - "items": { - "type": "object", - "additionalProperties": true - } + "400": { + "$ref": "#/components/responses/400ErrorResponse" }, - "duplicated": { - "type": "array", - "description": "List of objects that are not unique.", - "items": { - "type": "object", - "additionalProperties": true - } + "422": { + "$ref": "#/components/responses/WritebackValidationError" } - } - }, - "429Error": { - "type": "object", - "required": [ - "code", - "message" + }, + "summary": "Retrieve Mappings" + } + }, + "/writeback/sap/mappings/delete": { + "post": { + "operationId": "delete_schema_mappings", + "x-capability": [ + "SapWritebackAcl:WRITE" ], - "description": "Cognite API throttling.", - "properties": { - "code": { - "type": "integer", - "description": "429 HTTP status code.", - "format": "int32", - "example": 429 + "tags": [ + "Schema Mappings" + ], + "description": "Delete a list of mappings by their external ID.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WritebackItemsWithIgnoreUnknownIds_ExternalId_" + } + } }, - "message": { - "type": "string", - "description": "The error message specifies which kind of throttling happened: \n - Too many concurrent requests for a single project or an identity.\n - Too high rate of requests for a single project or an identity.\n\nSee more [here](https://docs.cognite.com/dev/concepts/request_throttling/ \"requests throttling\").", - "example": "Project exceeded maximum number='50' of concurrent requests. Please try again later." + "required": true, + "description": "List of external IDs of mappings to delete." + }, + "responses": { + "200": { + "$ref": "#/components/responses/EmptyResponse", + "description": "Empty response" + }, + "400": { + "$ref": "#/components/responses/400ErrorResponse" + }, + "422": { + "$ref": "#/components/responses/WritebackValidationError" } - } - }, - "ObjectPatch": { - "type": "object", - "description": "Custom, application specific metadata. String key -> String value.", - "oneOf": [ + }, + "summary": "Delete Mappings" + } + }, + "/writeback/sap/requests": { + "get": { + "tags": [ + "Writeback Requests" + ], + "operationId": "list_writeback_requests", + "x-capability": [ + "SapWritebackRequestsAcl:LIST" + ], + "parameters": [ { - "$ref": "#/components/schemas/ObjectPatchSet" + "$ref": "#/components/parameters/Writeback100Limit" }, { - "$ref": "#/components/schemas/ObjectPatchAddRemove" + "$ref": "#/components/parameters/Cursor" } - ] - }, - "ObjectPatchSet": { - "title": "set", - "type": "object", - "required": [ - "set" ], - "properties": { - "set": { - "uniqueItems": true, - "type": "object", - "description": "Set the key-value pairs. All existing key-value pairs will be removed.", - "additionalProperties": { - "type": "string" - }, - "example": { - "key1": "value1", - "key2": "value2" - } - } - } - }, - "ObjectPatchAddRemove": { - "title": "add/remove", - "type": "object", - "properties": { - "add": { - "uniqueItems": true, - "type": "object", - "description": "Add the key-value pairs. Values for existing keys will be overwritten.", - "additionalProperties": { - "type": "string" + "description": "List all writeback requests in a given CDF project. If more instances exist than what the limit specifies, a pagination cursor is returned in the response body.", + "responses": { + "202": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ItemsWithCursor_ListRequestMinimal_" + } + } }, - "example": { - "key1": "value1", - "key2": "value2" - } + "description": "List of endpoints and an optional cursor." }, - "remove": { - "uniqueItems": true, - "type": "array", - "description": "Remove the key-value pairs with the specified keys.", - "example": [ - "value1", - "value2" - ], - "items": { - "type": "string" - } - } - } - }, - "ObjectPatchEvent": { - "type": "object", - "description": "Custom, application specific metadata. String key -> String value. Limits of updated event: Maximum length of key is 128 bytes, value 128000 bytes, up to 256 key-value pairs, of total size at most 200000.", - "oneOf": [ - { - "$ref": "#/components/schemas/ObjectPatchEventSet" + "400": { + "$ref": "#/components/responses/400ErrorResponse" }, - { - "$ref": "#/components/schemas/ObjectPatchEventAddRemove" + "422": { + "$ref": "#/components/responses/WritebackValidationError", + "description": "Validation Error" } - ] + }, + "summary": "List Writeback Requests" }, - "ObjectPatchEventSet": { - "title": "set", - "type": "object", - "required": [ - "set" + "post": { + "tags": [ + "Writeback Requests" ], - "properties": { - "set": { - "uniqueItems": true, - "type": "object", - "description": "Set the key-value pairs. All existing key-value pairs will be removed.", - "additionalProperties": { - "type": "string", - "maxLength": 128000 - }, - "x-maxKeyLength": 128, - "x-maxTotalSize": 200000, - "maxProperties": 256, - "example": { - "key1": "value1", - "key2": "value2" + "operationId": "create_writeback_requests", + "x-capability": [ + "SapWritebackRequestsAcl:WRITE" + ], + "description": "Create up to 100 writeback requests.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Items_CreateRequest_" + } } - } - } - }, - "ObjectPatchEventAddRemove": { - "title": "add/remove", - "type": "object", - "properties": { - "add": { - "uniqueItems": true, - "type": "object", - "description": "Add the key-value pairs. Values for existing keys will be overwritten.", - "additionalProperties": { - "type": "string", - "maxLength": 128000 + }, + "required": true, + "description": "Request to create." + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Items_CreateRequestResponse_" + } + } }, - "x-maxKeyLength": 128, - "x-maxTotalSize": 200000, - "maxProperties": 256, - "example": { - "key1": "value1", - "key2": "value2" - } + "description": "List of created endpoints" }, - "remove": { - "uniqueItems": true, - "type": "array", - "description": "Remove the key-value pairs with the specified keys.", - "example": [ - "value1", - "value2" - ], - "items": { - "type": "string" - } - } - } - }, - "ObjectPatchAsset": { - "type": "object", - "description": "Custom, application specific metadata. String key -> String value. Limits of updated asset: Maximum length of key is 128 bytes, value 10240 bytes, up to 256 key-value pairs, of total size at most 10240.", - "oneOf": [ - { - "$ref": "#/components/schemas/ObjectPatchSetAsset" + "400": { + "$ref": "#/components/responses/400ErrorResponse", + "description": "Response for a failed request" }, - { - "$ref": "#/components/schemas/ObjectPatchAddRemoveAsset" + "422": { + "$ref": "#/components/responses/WritebackValidationError" } - ] - }, - "ObjectPatchSetAsset": { - "title": "set", - "type": "object", - "required": [ - "set" + }, + "summary": "Create Writeback Requests" + } + }, + "/writeback/sap/requests/byids": { + "post": { + "tags": [ + "Writeback Requests" ], - "properties": { - "set": { - "uniqueItems": true, - "type": "object", - "description": "Set the key-value pairs. All existing key-value pairs will be removed.", - "additionalProperties": { - "type": "string", - "maxLength": 10240 - }, - "x-maxKeyLength": 128, - "x-maxTotalSize": 10240, - "maxProperties": 256, - "example": { - "key1": "value1", - "key2": "value2" - } - } - } - }, - "ObjectPatchAddRemoveAsset": { - "title": "add/remove", - "type": "object", - "properties": { - "add": { - "uniqueItems": true, - "type": "object", - "description": "Add the key-value pairs. Values for existing keys will be overwritten.", - "additionalProperties": { - "type": "string", - "maxLength": 10240 - }, - "x-maxKeyLength": 128, - "x-maxTotalSize": 10240, - "maxProperties": 256, - "example": { - "key1": "value1", - "key2": "value2" + "operationId": "retrieve_writeback_requests", + "x-capability": [ + "SapWritebackRequestsAcl:WRITE" + ], + "description": "Retrieve a list of up to 100 writeback requests by their external ID, optionally ignoring unknown IDs.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ItemsWithIgnoreUnknownIds_RequestId_" + } } }, - "remove": { - "uniqueItems": true, - "type": "array", - "description": "Remove the key-value pairs with the specified keys.", - "example": [ - "value1", - "value2" - ], - "items": { - "type": "string" + "required": true, + "description": "List of external IDs of writeback requests to retrieve." + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Items_RequestFull_" + } + } + }, + "description": "List of retrieved writeback requests." + }, + "400": { + "$ref": "#/components/responses/400ErrorResponse" + }, + "422": { + "$ref": "#/components/responses/WritebackValidationError" + } + }, + "summary": "Retrieve Writeback Requests" + } + }, + "/simulators/run": {}, + "/simulators/runs/list": {}, + "/simulators/run/callback": {}, + "/simulators/runs/byids": {}, + "/simulators/runs/data/list": {}, + "/simulators/integrations/list": {}, + "/simulators/integrations/update": {}, + "/simulators/integrations/delete": {}, + "/simulators/integrations": {}, + "/simulators/models": {}, + "/simulators/models/list": {}, + "/simulators/models/aggregate": {}, + "/simulators/models/delete": {}, + "/simulators/models/update": {}, + "/simulators/models/byids": {}, + "/simulators/models/revisions": {}, + "/simulators/models/revisions/list": {}, + "/simulators/models/revisions/byids": {}, + "/simulators/models/revisions/update": {}, + "/simulators/routines": {}, + "/simulators/routines/list": {}, + "/simulators/routines/delete": {}, + "/simulators/routines/revisions": {}, + "/simulators/routines/revisions/list": {}, + "/simulators/routines/revisions/byids": {}, + "/simulators/logs/update": {}, + "/simulators/logs/byids": {}, + "/simulators/list": {}, + "/simulators": {}, + "/simulators/delete": {}, + "/simulators/update": {}, + "/units/byids": { + "post": { + "tags": [ + "Units" + ], + "summary": "Retrieve units by external IDs", + "description": "Retrieves one or more units by external ID. The response returns the units in the same order as in the request.", + "operationId": "byIdsUnits", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RestrictedItemList_ExternalIdRef_" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Response with a list of units", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ViewList_Unit_" + } + } + } + }, + "400": { + "description": "Bad Request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError" + } + } } } - } - }, - "ObjectPatchDataSet": { - "type": "object", - "description": "Custom, application specific metadata. String key -> String value. Limits of updated asset: Maximum length of key is 128 bytes, value 10240 bytes, up to 256 key-value pairs, of total size at most 10240.", - "oneOf": [ + }, + "x-code-samples": [ { - "$ref": "#/components/schemas/ObjectPatchSetDataSet" + "lang": "JavaScript", + "label": "JavaScript SDK", + "source": "const units = await client.units.retrieve([{ externalId: 'temperature:deg_c' }, { externalId: 'pressure:bar' }]);" }, { - "$ref": "#/components/schemas/ObjectPatchAddRemoveDataSet" + "lang": "Python", + "label": "Python SDK", + "source": "res = client.units.retrieve('temperature:deg_c')\n\nres = client.units.retrieve(['temperature:deg_c', 'pressure:bar'])\n" } ] - }, - "ObjectPatchSetDataSet": { - "title": "set", - "type": "object", - "required": [ - "set" + } + }, + "/units/systems": { + "get": { + "tags": [ + "Unit Systems" ], - "properties": { - "set": { - "uniqueItems": true, - "type": "object", - "description": "Set the key-value pairs. All existing key-value pairs will be removed.", - "additionalProperties": { - "type": "string", - "maxLength": 10240 - }, - "x-maxKeyLength": 128, - "x-maxTotalSize": 10240, - "maxProperties": 256, - "example": { - "key1": "value1", - "key2": "value2" + "summary": "List all unit systems", + "description": "List all unit systems.", + "operationId": "listUnitSystems", + "responses": { + "200": { + "description": "Response with a list of unit systems", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ViewList_UnitSystem_" + } + } } } - } - }, - "ObjectPatchAddRemoveDataSet": { - "title": "add/remove", - "type": "object", - "properties": { - "add": { - "uniqueItems": true, - "type": "object", - "description": "Add the key-value pairs. Values for existing keys will be overwritten.", - "additionalProperties": { + }, + "x-code-samples": [ + { + "lang": "JavaScript", + "label": "JavaScript SDK", + "source": "const units = await client.units.listUnitSystems();" + }, + { + "lang": "Python", + "label": "Python SDK", + "source": "res = client.units.systems.list()\n" + } + ] + } + }, + "/units/{externalId}": { + "get": { + "tags": [ + "Units" + ], + "summary": "Retrieve unit by external ID", + "description": "Retrieve a single unit by its external ID.", + "operationId": "getUnit", + "parameters": [ + { + "name": "externalId", + "in": "path", + "required": true, + "schema": { "type": "string", - "maxLength": 10240 + "description": "External ID of the unit", + "title": "Externalid" }, - "x-maxKeyLength": 128, - "x-maxTotalSize": 10240, - "maxProperties": 256, - "example": { - "key1": "value1", - "key2": "value2" + "description": "External ID of the unit" + } + ], + "responses": { + "200": { + "description": "Response with a single unit", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ViewList_Unit_" + } + } } }, - "remove": { - "uniqueItems": true, - "type": "array", - "description": "Remove the key-value pairs with the specified keys.", - "example": [ - "value1", - "value2" - ], - "items": { - "type": "string" - } + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError" + } + } + }, + "description": "Bad Request" } } - }, - "ArrayPatchLongSet": { - "title": "set", - "type": "object", - "required": [ - "set" + } + }, + "/units": { + "get": { + "tags": [ + "Units" ], - "properties": { - "set": { - "uniqueItems": true, - "type": "array", - "items": { - "type": "integer", - "format": "int64" + "summary": "List all units", + "description": "List all units.", + "operationId": "listUnits", + "responses": { + "200": { + "description": "Response with a list of units", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ViewList_Unit_" + } + } } } - } - }, - "ArrayPatchLongAddOrRemove": { - "title": "add/remove", - "type": "object", - "properties": { - "add": { - "uniqueItems": true, - "type": "array", - "items": { - "type": "integer", - "format": "int64" - } + }, + "x-code-samples": [ + { + "lang": "JavaScript", + "label": "JavaScript SDK", + "source": "const units = await client.units.list();" }, - "remove": { - "uniqueItems": true, - "type": "array", - "items": { - "type": "integer", - "format": "int64" - } + { + "lang": "Python", + "label": "Python SDK", + "source": "res = client.units.list()\n" } + ] + } + }, + "/api/v1/orgs/{org}/orgs": { + "servers": [ + { + "url": "https://auth.cognite.com" } - }, - "ArrayPatchLong": { - "type": "object", - "oneOf": [ - { - "$ref": "#/components/schemas/ArrayPatchLongSet" - }, + ], + "post": { + "operationId": "createChildOrg", + "summary": "Create an organization", + "security": [ { - "$ref": "#/components/schemas/ArrayPatchLongAddOrRemove" + "org-oidc-token": [] } ], - "description": "Change that will be applied to the array." - }, - "ArrayPatchStringSet": { - "title": "set", - "type": "object", - "required": [ - "set" + "description": "Create a child organization under the specified organization.\n\n#### Access control\nRequires the caller to be an admin in the parent organization (i.e. the one on the path), or any of its ancestors.\nIn addition, the flag `adminsCanCreateOrgsInSubtree` must be set to `true` in that organization.\n\n_Example:_ Assume an organization hierarchy like: `org-a` -> `org-b` -> `org-c`.\nTo create a new organization under `org-c`, which means calling 'POST /api/v1/orgs/org-c/orgs', the caller must be an\nadmin in at least one of `org-a`, `org-b`, or `org-c`, and `adminsCanCreateOrgsInSubtree` must be `true` in that same organization.", + "tags": [ + "Organizations" ], - "properties": { - "set": { - "uniqueItems": true, - "type": "array", - "items": { - "type": "string" - } + "parameters": [ + { + "$ref": "#/components/parameters/OrgId" } - } - }, - "ArrayPatchStringAddOrRemove": { - "title": "add/remove", - "type": "object", - "properties": { - "add": { - "uniqueItems": true, - "type": "array", - "items": { - "type": "string" - } + ], + "requestBody": { + "$ref": "#/components/requestBodies/OrganizationRequestDto" + }, + "responses": { + "201": { + "$ref": "#/components/responses/OrganizationResponseDto" }, - "remove": { - "uniqueItems": true, - "type": "array", - "items": { - "type": "string" - } + "403": { + "description": "Creation forbidden: The caller is not allowed to create sub-organizations." } } }, - "ArrayPatchString": { - "type": "object", - "oneOf": [ - { - "$ref": "#/components/schemas/ArrayPatchStringSet" - }, + "get": { + "operationId": "listChildOrgs", + "summary": "List child organizations", + "security": [ { - "$ref": "#/components/schemas/ArrayPatchStringAddOrRemove" + "org-oidc-token": [] } ], - "description": "Change that will be applied to the array." - }, - "SinglePatchBoolean": { - "type": "object", - "title": "set", - "required": [ - "set" + "description": "List all child organizations under the specified parent organization.\n\n#### Access control\nRequires the caller to be an admin in the parent organization (i.e. the one on the path), or any of its ancestors.\n\n_Example:_ Assume an organization hierarchy like: `org-a` -> `org-b` -> `org-c`.\nTo list child organizations under `org-b`, which means calling 'GET /api/v1/orgs/org-b/orgs', the caller must be an\nadmin in `org-a` or `org-b`.", + "tags": [ + "Organizations" ], - "properties": { - "set": { - "type": "boolean" - } - } - }, - "JsonArrayInt64": { - "type": "string", - "format": "jsonArray(int64)", - "example": "[1238712837, 238712361376, 23786237623]" - }, - "JsonArrayString": { - "type": "string", - "format": "jsonArray(string)" - }, - "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" - }, - "EpochTimestampRange": { - "description": "Range between two timestamps (inclusive).", - "type": "object", - "properties": { - "max": { - "description": "Maximum timestamp (inclusive). The timestamp is represented as number of milliseconds since 00:00:00 Thursday, 1 January 1970, Coordinated Universal Time (UTC), minus leap seconds.", - "type": "integer", - "minimum": 0, - "format": "int64" - }, - "min": { - "description": "Minimum timestamp (inclusive). The timestamp is represented as number of milliseconds since 00:00:00 Thursday, 1 January 1970, Coordinated Universal Time (UTC), minus leap seconds.", - "type": "integer", - "minimum": 0, - "format": "int64" - } - } - }, - "IsNull": { - "type": "object", - "properties": { - "isNull": { - "type": "boolean", - "example": true, - "description": "Set to true if you want to search for data with field value not set, false to search for cases where some value is present." + "parameters": [ + { + "$ref": "#/components/parameters/OrgId" } - } - }, - "Partition": { - "description": "Splits the data set into `N` partitions. \nThe attribute is specified as a \"M/N\" string, where `M` is a natural number in the interval of `[1, N]`.\nYou need to follow the cursors within each partition in order to receive all the data.\n\nTo prevent unexpected problems and maximize read throughput, you should at most use 10 (N <= 10) partitions.\n\nWhen using more than 10 partitions, CDF may reduce the number of partitions silently.\nFor 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\nCDF will change `N` to `N = K = 10` and process the request. \nBut if you specify the `X/N` `partition` value where `X = 11` (`X > K`) and `N = 20` - i.e. `\"partition\": \"11/20\"`- then\nCDF will reply with an empty result list and no cursor in the response. \n\nIn future releases of the resource APIs, Cognite may reject requests if you specify more than 10 partitions.\nWhen Cognite enforces this behavior, the requests will result in a 400 Bad Request status.\n", - "type": "string", - "example": "1/10" - }, - "PartitionLimited10": { - "description": "Splits the data set into `N` partitions.\nThe attribute is specified as a \"M/N\" string, where `M` is a natural number in the interval of `[1, N]`.\nYou need to follow the cursors within each partition in order to receive all the data.\n\nThe maximum number of allowed partitions (`N`) is 10.\n\nCognite rejects requests if you specify more than 10 partitions.\nWhen Cognite enforces this behavior, the requests result in a 400 Bad Request status.\n", - "type": "string", - "example": "1/3" - }, - "PartitionObject": { - "type": "object", - "properties": { - "partition": { - "$ref": "#/components/schemas/Partition" + ], + "responses": { + "200": { + "$ref": "#/components/responses/OrganizationListResponse" } } - }, - "PartitionObjectLimited10": { - "type": "object", - "properties": { - "partition": { - "$ref": "#/components/schemas/PartitionLimited10" - } + } + }, + "/api/v1/orgs/{org}": { + "servers": [ + { + "url": "https://auth.cognite.com" } - }, - "Cursor": { - "description": "Cursor for paging through results.", - "type": "object", - "properties": { - "cursor": { - "type": "string", - "example": "4zj0Vy2fo0NtNMb229mI9r1V3YG5NBL752kQz1cKtwo" + ], + "get": { + "operationId": "getOrg", + "summary": "Retrieve an organization", + "security": [ + { + "org-oidc-token": [] } - } - }, - "SetLongField": { - "type": "object", - "required": [ - "set" ], - "properties": { - "set": { - "type": "integer", - "format": "int64" + "description": "Retrieve an organization by its ID.\n\n#### Access control\nRequires the caller to be an admin in the organization, or any of its ancestors.\n\n_Example:_ Assume an organization hierarchy like: `org-a` -> `org-b` -> `org-c`.\nTo retrieve `org-c`, which means calling 'GET /api/v1/orgs/org-c', the caller must be an admin in `org-a`, `org-b` or\n`org-c`.", + "tags": [ + "Organizations" + ], + "parameters": [ + { + "$ref": "#/components/parameters/OrgId" } - } - }, - "SetStringField": { - "type": "object", - "title": "set", - "required": [ - "set" ], - "properties": { - "set": { - "type": "string" + "responses": { + "200": { + "$ref": "#/components/responses/OrganizationWithContactPersonsResponseDto" } } - }, - "SetIntegerField": { - "type": "object", - "title": "set", - "required": [ - "set" + } + }, + "/api/v1/orgs/{org}/delete": { + "servers": [ + { + "url": "https://auth.cognite.com" + } + ], + "post": { + "operationId": "deleteOrg", + "summary": "Delete an organization", + "security": [ + { + "org-oidc-token": [] + } ], - "properties": { - "set": { - "type": "integer" + "description": "Delete an organization. Users will be locked out of the organization immediately. This also applies to the caller.\n\nThe organization cannot contain sub-organizations or projects at the time of deletion.\n\nThis is a soft-delete, so Cognite Support can restore the organization in case of accidents.\n\n#### Access control\nRequires the caller to be an admin in the organization, or any of its ancestors.\n\n_Example:_ Assume an organization hierarchy like: `org-a` -> `org-b` -> `org-c`.\nTo delete `org-c`, which means calling 'POST /api/v1/orgs/org-c/delete', the caller must be an admin in `org-a`, `org-b` or\n`org-c`.", + "tags": [ + "Organizations" + ], + "parameters": [ + { + "$ref": "#/components/parameters/OrgId" } - } - }, - "SetBooleanField": { - "type": "object", - "title": "set", - "required": [ - "set" ], - "properties": { - "set": { - "type": "boolean" + "responses": { + "200": { + "description": "Successful deletion", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } } } - }, - "GeoLocationFilter": { - "description": "Only include files matching the specified geographic relation.", - "type": "object", - "required": [ - "relation", - "shape" + } + }, + "/api/v1/orgs/{org}/projects": { + "servers": [ + { + "url": "https://auth.cognite.com" + } + ], + "post": { + "operationId": "createChildProject", + "summary": "Create a project", + "security": [ + { + "org-oidc-token": [] + } ], - "properties": { - "relation": { - "type": "string", - "enum": [ - "INTERSECTS", - "DISJOINT", - "WITHIN" - ], - "description": "One of the supported queries." + "description": "Create a project in the specified organization, in the given cluster. The project is immediately available\nfor login in Cognite applications, for example through Cognite Data Fusion.\n\n#### Cluster placement\nThe chosen cluster must be one of the allowed clusters for the organization.\n\nThe project cannot be moved to a different cluster after creation, so make sure to choose the correct one\nwith respect to data locality requirements.\n\n#### Project OIDC configuration\nThe OIDC configuration will be copied from the immediate parent organization.\n\nThe caller can, and should, set an initial admin group ID for the project. That group is managed by the external\nidentity provider, as for the organization.\nIf that group is not set, the project will inherit the admin group ID of the organization it's created in.\nSee the `projectAdminGroupId` field in the request body for more details on this behavior.\n\n#### Access control\nRequires the caller to be an admin in the organization, or any of its ancestors.\nIn addition, the flag `adminsCanCreateProjectsInSubtree` must be set to `true` in that organization.\n\n_Example:_ Assume an organization hierarchy like: `org-a` -> `org-b` -> `org-c`.\nTo create a project in `org-c`, which means calling 'POST /api/v1/orgs/org-c/projects', the caller must be an admin in\n`org-a`, `org-b` or `org-c`.\nAlso, `adminsCanCreateProjectsInSubtree` must be `true` in that same organization.", + "tags": [ + "Projects" + ], + "parameters": [ + { + "$ref": "#/components/parameters/OrgId" + } + ], + "requestBody": { + "$ref": "#/components/requestBodies/NewProjectListRequestDto" + }, + "responses": { + "201": { + "$ref": "#/components/responses/NewProjectListResponseDto" }, - "shape": { - "type": "object", - "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/MultiLineString" - }, - { - "$ref": "#/components/schemas/MultiPolygon" - } - ], - "discriminator": { - "propertyName": "type" - } + "403": { + "description": "Creation forbidden: The caller is not allowed to create projects." } } }, - "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" - }, + "get": { + "operationId": "listChildProjects", + "summary": "List projects in an organization", + "security": [ { - "$ref": "#/components/schemas/MultiPolygon" + "org-oidc-token": [] } ], - "discriminator": { - "propertyName": "type" - } - }, - "Point": { - "type": "object", - "required": [ - "type", - "coordinates" + "description": "List all projects in the specified organization.\n\n#### Access control\nIf `includeAdminProperties` is true, it requires the caller to be an admin in the organization, or any of its ancestors.\nOtherwise, it requires the caller to be a member of the organization.\n\n_Example:_ Assume an organization hierarchy like: `org-a` -> `org-b` -> `org-c`.\nTo list projects in `org-c`, which means calling 'GET /api/v1/orgs/org-c/projects?includeAdminProperties',\nthe caller must be an admin in `org-a`, `org-b` or `org-c`.", + "tags": [ + "Projects" ], - "properties": { - "type": { - "type": "string", - "enum": [ - "Point" - ] + "parameters": [ + { + "$ref": "#/components/parameters/OrgId" }, - "coordinates": { - "$ref": "#/components/schemas/PointCoordinates" + { + "name": "includeAdminProperties", + "in": "query", + "description": "Whether to include admin properties of the projects in the response.", + "schema": { + "type": "boolean", + "default": false + } } - } - }, - "PointCoordinates": { - "description": "Coordinates of a point in 2D space, described as an array of 2 numbers.\n\nExample: `[4.306640625, 60.205710352530346]`\n", - "type": "array", - "minItems": 2, - "maxItems": 2, - "items": { - "type": "number" - } - }, - "LineString": { - "type": "object", - "required": [ - "type", - "coordinates" ], - "properties": { - "type": { - "type": "string", - "enum": [ - "LineString" - ] - }, - "coordinates": { - "$ref": "#/components/schemas/LineStringCoordinates" + "responses": { + "200": { + "$ref": "#/components/responses/ProjectResponseDto" } } - }, - "LineStringCoordinates": { - "description": "Coordinates of a line described by a list of two or more points.\nEach point is defined as a pair of two numbers in an array, representing coordinates of a point in 2D space.\n\nExample: `[[30, 10], [10, 30], [40, 40]]`\n", - "type": "array", - "minItems": 2, - "items": { - "$ref": "#/components/schemas/PointCoordinates" + } + }, + "/api/v0/orgs/{org}/projects": { + "servers": [ + { + "url": "https://auth.cognite.com" } + ] + } + }, + "components": { + "securitySchemes": { + "oidc-token": { + "type": "http", + "scheme": "bearer", + "bearerFormat": "OpenID Connect or OAuth2 token", + "description": "Access token issued by the CDF project's configured identity provider. Access token must be an OpenID Connect token, and the project must be configured to accept OpenID Connect tokens. Use a header key of 'Authorization' with a value of 'Bearer $accesstoken'. The token can be obtained through any flow supported by the identity provider." }, - "Polygon": { - "type": "object", - "required": [ - "type", - "coordinates" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "Polygon" - ] - }, - "coordinates": { - "$ref": "#/components/schemas/PolygonCoordinates" + "oauth2-client-credentials": { + "type": "oauth2", + "description": "Access token issued by the CDF project's configured identity provider. Access token must be an OpenID Connect token, and the project must be configured to accept OpenID Connect tokens. Use a header key of 'Authorization' with a value of 'Bearer $accesstoken'. The token can be obtained through any flow supported by the identity provider.", + "flows": { + "clientCredentials": { + "tokenUrl": "https://your-idps.token.url/", + "scopes": { + "default": "https://{cluster}.cognitedata.com/.default" + } } } }, - "PolygonCoordinates": { - "description": "List of one or more linear rings representing a shape.\n\nA 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.\n\nEach Point is defined as an array of 2 numbers, representing coordinates of a point in 2D space.\n\nExample: `[[[35, 10], [45, 45], [15, 40], [10, 20], [35, 10]], [[20, 30], [35, 35], [30, 20], [20, 30]]]`\n", - "type": "array", - "minItems": 2, - "items": { - "$ref": "#/components/schemas/LineStringCoordinates" + "oauth2-auth-code": { + "type": "oauth2", + "description": "Access token issued by the CDF project's configured identity provider. Access token must be an OpenID Connect token, and the project must be configured to accept OpenID Connect tokens. Use a header key of 'Authorization' with a value of 'Bearer $accesstoken'. The token can be obtained through any flow supported by the identity provider.", + "flows": { + "authorizationCode": { + "authorizationUrl": "https://your-idps.authorization.url/", + "tokenUrl": "https://your-idps.token.url/", + "scopes": { + "default": "https://{cluster}.cognitedata.com/.default" + } + } } }, - "MultiPoint": { - "type": "object", - "required": [ - "type", - "coordinates" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "MultiPoint" - ] - }, - "coordinates": { - "$ref": "#/components/schemas/MultiPointCoordinates" + "oauth2-open-industrial-data": { + "type": "oauth2", + "description": "Auth flow for Open Industrial Data. Get your client secret from https://hub.cognite.com/open-industrial-data-211.", + "flows": { + "clientCredentials": { + "tokenUrl": "https://login.microsoftonline.com/48d5043c-cf70-4c49-881c-c638f5796997/oauth2/v2.0/token", + "scopes": { + "default": "https://api.cognitedata.com/.default" + } } } }, - "MultiPointCoordinates": { - "description": "List of Points. Each Point is defined as an array of 2 numbers, representing coordinates of a point in 2D space.\n\nExample: `[[35, 10], [45, 45]]`\n", - "type": "array", - "items": { - "$ref": "#/components/schemas/PointCoordinates" - } + "token": { + "type": "http", + "description": "Users log in via an OpenID/OAuth flow. Use the /login/redirect flow to obtain a bearer access token. Use a header key of 'Authorization' with a value of 'Bearer: $accesstoken'", + "scheme": "bearer" }, - "MultiLineString": { + "org-oidc-token": { + "type": "openIdConnect", + "openIdConnectUrl": "https://auth.cognite.com/.well-known/openid-configuration", + "description": "Access token issued by the Cognite authorization server, and valid for the target organization. The token must\nbe an OpenID Connect token, and it can be obtained by performing an OIDC login flow toward `auth.cognite.com`.\nThis is a single URL for all CDF organizations." + } + }, + "schemas": { + "TokenInspectionResponse": { "type": "object", "required": [ - "type", - "coordinates" + "subject", + "projects", + "capabilities" ], "properties": { - "type": { + "subject": { "type": "string", - "enum": [ - "MultiLineString" - ] + "description": "Subject (sub claim) of JWT" }, - "coordinates": { - "$ref": "#/components/schemas/MultiLineStringCoordinates" + "projects": { + "$ref": "#/components/schemas/Projects" + }, + "capabilities": { + "$ref": "#/components/schemas/Capabilities" } } }, - "MultiLineStringCoordinates": { - "description": "List of lines where each line (LineString) is defined as a list of two or more points.\nEach point is defined as a pair of two numbers in an array, representing coordinates of a point in 2D space.\n\nExample: `[[[30, 10], [10, 30]], [[35, 10], [10, 30], [40, 40]]]`\n", + "Projects": { "type": "array", + "title": "projects", "items": { - "$ref": "#/components/schemas/LineStringCoordinates" - } - }, - "MultiPolygon": { - "type": "object", - "required": [ - "type", - "coordinates" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "MultiPolygon" - ] - }, - "coordinates": { - "$ref": "#/components/schemas/MultiPolygonCoordinates" + "type": "object", + "required": [ + "projectUrlName", + "groups" + ], + "properties": { + "projectUrlName": { + "type": "string", + "description": "Project url name" + }, + "groups": { + "type": "array", + "description": "Group IDs", + "items": { + "type": "integer", + "description": "group ids", + "format": "int64" + } + } } } }, - "MultiPolygonCoordinates": { - "description": "List of multiple polygons.\n\nEach polygon is defined as a list of one or more linear rings representing a shape.\n\nA 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.\n\nEach Point is defined as an array of 2 numbers, representing coordinates of a point in 2D space.\n\nExample: `[[[[30, 20], [45, 40], [10, 40], [30, 20]]], [[[15, 5], [40, 10], [10, 20], [5, 10], [15, 5]]]]`\n", + "Capabilities": { "type": "array", "items": { - "$ref": "#/components/schemas/PolygonCoordinates" - } - }, - "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." - } + "$ref": "#/components/schemas/Capability" } }, - "SinglePatchGeoLocation": { - "title": "set", + "Capability": { "type": "object", "oneOf": [ { - "$ref": "#/components/schemas/SetGeoLocation" + "title": "Groups Capability", + "properties": { + "groupsAcl": { + "$ref": "#/components/schemas/cognitegroups_aclAcl" + }, + "projectScope": { + "$ref": "#/components/schemas/ProjectScope" + } + } }, { - "$ref": "#/components/schemas/RemoveField" - } - ], - "description": "Set a new value for the geoLocation, or remove the value." - }, - "SetGeoLocation": { - "title": "set", - "type": "object", - "required": [ - "set" - ], - "properties": { - "set": { - "$ref": "#/components/schemas/GeoLocation" - } - } - }, - "RemoveField": { - "title": "remove", - "type": "object", - "required": [ - "setNull" - ], - "properties": { - "setNull": { - "type": "boolean", - "example": true - } - } - }, - "SetExternalId": { - "type": "object", - "title": "set", - "required": [ - "set" - ], - "properties": { - "set": { - "$ref": "#/components/schemas/CogniteExternalId" - } - } - }, - "SetDataSetId": { - "type": "object", - "required": [ - "set" - ], - "properties": { - "set": { - "$ref": "#/components/schemas/DataSetId" - } - } - }, - "SetDescription": { - "type": "object", - "title": "set", - "required": [ - "set" - ], - "properties": { - "set": { - "$ref": "#/components/schemas/ResourceDescription" - } - } - }, - "SinglePatchResourceDescription": { - "title": "set", - "type": "object", - "oneOf": [ - { - "$ref": "#/components/schemas/SetDescription" + "title": "Assets Capability", + "properties": { + "assetsAcl": { + "$ref": "#/components/schemas/cogniteassets_aclAcl" + }, + "projectScope": { + "$ref": "#/components/schemas/ProjectScope" + } + } }, { - "$ref": "#/components/schemas/RemoveField" - } - ] - }, - "SinglePatchDataSetId": { - "title": "set", - "type": "object", - "oneOf": [ - { - "$ref": "#/components/schemas/SetDataSetId" + "title": "Events Capability", + "properties": { + "eventsAcl": { + "$ref": "#/components/schemas/cogniteevents_aclAcl" + }, + "projectScope": { + "$ref": "#/components/schemas/ProjectScope" + } + } }, { - "$ref": "#/components/schemas/RemoveField" - } - ] - }, - "SinglePatchExternalId": { - "title": "set", - "type": "object", - "oneOf": [ - { - "$ref": "#/components/schemas/SetExternalId" + "title": "Files Capability", + "properties": { + "filesAcl": { + "$ref": "#/components/schemas/cognitefiles_aclAcl" + }, + "projectScope": { + "$ref": "#/components/schemas/ProjectScope" + } + } }, { - "$ref": "#/components/schemas/RemoveField" - } - ], - "description": "Set a new value for the externalId, or remove the value. Must be unique for the resource type." - }, - "SinglePatchLong": { - "title": "set", - "type": "object", - "oneOf": [ - { - "$ref": "#/components/schemas/SetLongField" + "title": "Projects Capability", + "properties": { + "projectsAcl": { + "$ref": "#/components/schemas/cogniteprojects_aclAcl" + }, + "projectScope": { + "$ref": "#/components/schemas/ProjectScope" + } + } }, { - "$ref": "#/components/schemas/RemoveField" - } - ], - "description": "Set a new value for the long, or remove the value." - }, - "ModifyPatchInteger": { - "title": "modify", - "type": "object", - "oneOf": [ + "title": "Security Category Capability", + "properties": { + "securityCategoriesAcl": { + "$ref": "#/components/schemas/cognitesecuritycategories_aclAcl" + }, + "projectScope": { + "$ref": "#/components/schemas/ProjectScope" + } + } + }, { - "$ref": "#/components/schemas/SetIntegerField" + "title": "Raw Capability", + "properties": { + "rawAcl": { + "$ref": "#/components/schemas/cogniteraw_aclAcl" + }, + "projectScope": { + "$ref": "#/components/schemas/ProjectScope" + } + } }, { - "$ref": "#/components/schemas/RemoveField" - } - ], - "description": "Set a new value for the integer, or remove the value" - }, - "ModifyPatchBoolean": { - "title": "modify", - "type": "object", - "oneOf": [ + "title": "TimeSeries Capability", + "properties": { + "timeSeriesAcl": { + "$ref": "#/components/schemas/cognitetimeseries_aclAcl" + }, + "projectScope": { + "$ref": "#/components/schemas/ProjectScope" + } + } + }, { - "$ref": "#/components/schemas/SetBooleanField" + "title": "Threed Capability", + "properties": { + "threedAcl": { + "$ref": "#/components/schemas/cognitethreed_aclAcl" + }, + "projectScope": { + "$ref": "#/components/schemas/ProjectScope" + } + } }, { - "$ref": "#/components/schemas/RemoveField" - } - ], - "description": "Set a new value for the boolean, or remove the value" - }, - "SinglePatchString": { - "title": "set", - "type": "object", - "oneOf": [ + "title": "Sequences Capability", + "properties": { + "sequencesAcl": { + "$ref": "#/components/schemas/cognitesequences_aclAcl" + }, + "projectScope": { + "$ref": "#/components/schemas/ProjectScope" + } + } + }, { - "$ref": "#/components/schemas/SetStringField" + "title": "Labels Capability", + "properties": { + "labelsAcl": { + "$ref": "#/components/schemas/cognitelabels_aclAcl" + }, + "projectScope": { + "$ref": "#/components/schemas/ProjectScope" + } + } }, { - "$ref": "#/components/schemas/RemoveField" - } - ], - "description": "Set a new value for the string, or remove the value." - }, - "SinglePatchRequiredString": { - "title": "set", - "type": "object", - "properties": { - "set": { - "type": "string" - } - }, - "description": "Set a new value for the string.", - "required": [ - "set" - ] - }, - "CogniteInternalId": { - "description": "A server-generated ID for the object.", - "type": "integer", - "minimum": 1, - "maximum": 9007199254740991, - "format": "int64" - }, - "CogniteExternalId": { - "description": "The external ID provided by the client. Must be unique for the resource type.", - "type": "string", - "maxLength": 255, - "example": "my.known.id" - }, - "CogniteExternalIdPrefix": { - "description": "Filter by this (case-sensitive) prefix for the external ID.", - "type": "string", - "maxLength": 255, - "example": "my.known.prefix" - }, - "DataSetInternalId": { - "type": "object", - "title": "DataSetInternalId", - "required": [ - "id" - ], - "properties": { - "id": { - "$ref": "#/components/schemas/CogniteInternalId" - } - } - }, - "DataSetExternalId": { - "type": "object", - "title": "DataSetExternalId", - "required": [ - "externalId" - ], - "properties": { - "externalId": { - "$ref": "#/components/schemas/CogniteExternalId" - } - } - }, - "DataSetIdEither": { - "oneOf": [ + "title": "Analytics Capability", + "properties": { + "analyticsAcl": { + "$ref": "#/components/schemas/cogniteanalytics_aclAcl" + }, + "projectScope": { + "$ref": "#/components/schemas/ProjectScope" + } + } + }, { - "$ref": "#/components/schemas/DataSetInternalId" + "title": "Digital Twin Capability", + "properties": { + "digitalTwinAcl": { + "$ref": "#/components/schemas/cognitedigitaltwin_aclAcl" + }, + "projectScope": { + "$ref": "#/components/schemas/ProjectScope" + } + } }, { - "$ref": "#/components/schemas/DataSetExternalId" - } - ] - }, - "DataSetIdEithers": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DataSetIdEither" - } - }, - "IdEither": { - "type": "object", - "description": "Either an internal ID, or an external ID.", - "oneOf": [ + "title": "Data Modeling Schema Capability", + "properties": { + "digitalTwinAcl": { + "$ref": "#/components/schemas/cognitedatamodels_aclAcl" + }, + "projectScope": { + "$ref": "#/components/schemas/ProjectScope" + } + } + }, { + "title": "Data Modeling Instances Capability", "properties": { - "id": { - "$ref": "#/components/schemas/CogniteInternalId" + "digitalTwinAcl": { + "$ref": "#/components/schemas/cognitedatamodelinstances_aclAcl" + }, + "projectScope": { + "$ref": "#/components/schemas/ProjectScope" } - }, - "required": [ - "id" - ] + } }, { + "title": "Industrial Log Analytics Instances Capability", "properties": { - "externalId": { - "$ref": "#/components/schemas/CogniteExternalId" + "ilaInstancesAcl": { + "$ref": "#/components/schemas/cogniteilainstances_aclAcl" + }, + "projectScope": { + "$ref": "#/components/schemas/ProjectScope" } - }, - "required": [ - "externalId" - ] - } - ], - "example": { - "externalId": "my.known.id" - } - }, - "DataSetId": { - "description": "The dataSet Id for the item.", - "type": "integer", - "minimum": 1, - "maximum": 9007199254740991, - "format": "int64" - }, - "TimestampOrStringStart": { - "oneOf": [ + } + }, { - "type": "integer", - "default": 0 + "title": "Relationships Capability", + "properties": { + "relationshipsAcl": { + "$ref": "#/components/schemas/cogniterelationships_aclAcl" + }, + "projectScope": { + "$ref": "#/components/schemas/ProjectScope" + } + } }, { - "type": "string" + "title": "Datasets Capability", + "properties": { + "datasetsAcl": { + "$ref": "#/components/schemas/cognitedatasets_aclAcl" + }, + "projectScope": { + "$ref": "#/components/schemas/ProjectScope" + } + } + }, + { + "title": "Seismic Capability", + "properties": { + "seismicAcl": { + "$ref": "#/components/schemas/cogniteseismic_aclAcl" + }, + "projectScope": { + "$ref": "#/components/schemas/ProjectScope" + } + } + }, + { + "title": "Types Capability", + "properties": { + "typesAcl": { + "$ref": "#/components/schemas/cognitetypes_aclAcl" + }, + "projectScope": { + "$ref": "#/components/schemas/ProjectScope" + } + } + }, + { + "title": "Functions Capability", + "properties": { + "functionsAcl": { + "$ref": "#/components/schemas/functions_aclAcl" + }, + "projectScope": { + "$ref": "#/components/schemas/ProjectScope" + } + } + }, + { + "title": "Extraction Pipelines Capability", + "properties": { + "extractionpipelinesAcl": { + "$ref": "#/components/schemas/extractionpipelines_aclAcl" + }, + "projectScope": { + "$ref": "#/components/schemas/ProjectScope" + } + } + }, + { + "title": "Extraction Pipeline Runs Capability", + "properties": { + "extractionrunsAcl": { + "$ref": "#/components/schemas/extractionruns_aclAcl" + }, + "projectScope": { + "$ref": "#/components/schemas/ProjectScope" + } + } } - ], - "description": "Get datapoints starting from, and including, this time. The format is N[timeunit]-ago where\ntimeunit is w,d,h,m,s. Example: '2d-ago' gets datapoints that are up to 2 days\nold. You can also specify time in milliseconds since epoch. Note that for aggregates, the start time is rounded down to a whole granularity unit (in UTC timezone). Daily granularities (d)\nare rounded to 0:00 AM; hourly granularities (h) to the start of the hour, etc." + ] }, - "TimestampOrStringEnd": { + "ProjectScope": { "oneOf": [ { - "type": "integer" + "type": "object", + "title": "allProjects", + "required": [ + "allProjects" + ], + "properties": { + "allProjects": { + "type": "object", + "description": "All projects" + } + } }, { - "type": "string", - "default": "now" - } - ], - "description": "Get datapoints up to, but excluding, this point in time. Same format as for start. Note that when using aggregates, the end will be rounded up such that the last aggregate represents a full aggregation interval containing the original end, where the interval is the granularity unit times the granularity multiplier. For granularity 2d, the aggregation interval is 2 days, if end was originally 3 days after the start, it will be rounded to 4 days after the start." - }, - "CountAggregateResult": { - "description": "Common aggregate structure to represent aggregate result which have one count for filter resultset (Documents Count, Property Cardinality, etc).", - "title": "CountResult", - "type": "object", - "required": [ - "items" - ], - "properties": { - "items": { - "type": "array", - "minItems": 1, - "maxItems": 1, - "items": { - "type": "object", - "required": [ - "count" - ], - "properties": { - "count": { - "type": "integer", - "description": "Number of items in this aggregation group.", - "format": "int64" + "type": "object", + "title": "projectsList", + "required": [ + "projects" + ], + "properties": { + "projects": { + "type": "array", + "title": "projectUrlNames", + "items": { + "$ref": "#/components/schemas/ProjectUrlName" } } } } - }, - "example": { - "items": [ - { - "count": 10 - } - ] - } + ] }, - "StringValue": { - "title": "String", - "description": "A unique string value in the field.", - "type": "object", + "InstanceSpace": { + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9_-]{0,41}[a-zA-Z0-9]?$", + "minLength": 1, + "maxLength": 43 + }, + "InstanceExternalId": { + "type": "string", + "pattern": "^[a-zA-Z]([a-zA-Z0-9_]{0,253}[a-zA-Z0-9])?$", + "minLength": 1, + "maxLength": 255 + }, + "SessionCredentials": { + "additionalProperties": false, + "properties": { + "nonce": { + "title": "Nonce", + "type": "string", + "description": "Session nonce for a recently created CDF Session." + } + }, "required": [ - "value" + "nonce" ], + "title": "SessionCredentials", + "type": "object", + "description": "Credentials for authenticating towards CDF using a CDF session." + }, + "ResourceDescription": { + "type": "string", + "description": "The description of the resource type.", + "maxLength": 500 + }, + "IgnoreUnknownIdsField": { + "type": "object", "properties": { - "value": { - "type": "string" + "ignoreUnknownIds": { + "description": "Ignore IDs and external IDs that are not found", + "type": "boolean", + "default": false } } }, - "AggregateStringValues": { - "title": "Strings", + "Limit": { "type": "object", - "required": [ - "count", - "values" - ], "properties": { - "count": { - "description": "Number of items in this aggregation bucket.", + "limit": { + "description": "Limits the number of results to return.", "type": "integer", - "format": "int64" - }, - "values": { - "description": "An array of unique string values in the property.", - "type": "array", - "minItems": 1, - "maxItems": 1, - "items": { - "type": "string" - } - }, - "value": { - "deprecated": true, - "description": "A unique string value in the field.", - "type": "string" + "default": 100, + "minimum": 1, + "maximum": 1000 } } }, - "AggregateIntegerValues": { - "title": "Integers", + "ExternalIdPrefixFilter": { + "description": "filter external ids starting with the prefix specified", + "type": "string", + "maxLength": 255 + }, + "DataLong": { "type": "object", "required": [ - "count", - "values" + "items" ], "properties": { - "count": { - "description": "Number of items in this aggregation bucket.", - "type": "integer", - "format": "int64" - }, - "values": { - "description": "An array of unique integer values in the property.", + "items": { "type": "array", + "example": [ + 23872937137, + 1238712837, + 128371973 + ], "minItems": 1, - "maxItems": 1, + "uniqueItems": true, "items": { "type": "integer", "format": "int64" } - }, - "value": { - "deprecated": true, - "description": "A unique integer value in the field.", - "type": "integer", - "format": "int64" } } }, - "AggregatePropertyValues": { - "title": "Properties", - "description": "A single bucket to represent `uniqueProperties` aggregate result.\n", + "Error": { "type": "object", "required": [ - "count", - "values" + "code", + "message" ], + "description": "Cognite API error.", "properties": { - "count": { - "description": "Number of items in this aggregation bucket.", + "code": { "type": "integer", - "format": "int64" + "description": "HTTP status code.", + "format": "int32", + "example": 401 }, - "values": { - "description": "An array of unique properties for UniqueProperties aggregate.\n", + "message": { + "type": "string", + "description": "Error message.", + "example": "Could not authenticate." + }, + "missing": { "type": "array", - "minItems": 1, - "maxItems": 1, + "description": "List of lookup objects that do not match any results.", "items": { "type": "object", - "required": [ - "property" - ], - "properties": { - "property": { - "$ref": "#/components/schemas/AggregateProperty" - } - }, - "example": { - "property": [ - "metadata", - "key1" - ] - } + "additionalProperties": true } }, - "value": { - "deprecated": true, - "description": "A unique property for UniqueProperties aggregate.\n", - "type": "object", - "required": [ - "property" - ], - "properties": { - "property": { - "$ref": "#/components/schemas/AggregateProperty" - } + "duplicated": { + "type": "array", + "description": "List of objects that are not unique.", + "items": { + "type": "object", + "additionalProperties": true } } } }, - "ValuesAggregateResult": { - "description": "Common aggregate structure to represent aggregate result which have count buckets for filter resultset (Unique Property Values, Not Null Document Properties, etc).", - "title": "BucketsResult", + "429Error": { "type": "object", "required": [ - "items" + "code", + "message" ], + "description": "Cognite API throttling.", "properties": { - "items": { - "type": "array", - "minItems": 1, - "maxItems": 1000, - "items": { - "type": "object", - "oneOf": [ - { - "$ref": "#/components/schemas/AggregateStringValues" - }, - { - "$ref": "#/components/schemas/AggregateIntegerValues" - }, - { - "$ref": "#/components/schemas/AggregatePropertyValues" - } - ] - } + "code": { + "type": "integer", + "description": "429 HTTP status code.", + "format": "int32", + "example": 429 + }, + "message": { + "type": "string", + "description": "The error message specifies which kind of throttling happened:\n - Too many concurrent requests for a single project or an identity.\n - Too high rate of requests for a single project or an identity.\n\nSee more [here](https://docs.cognite.com/dev/concepts/request_throttling/ \"requests throttling\").", + "example": "Project exceeded maximum number='50' of concurrent requests. Please try again later." } - }, - "example": { - "items": [ - { - "count": 5, - "values": [ - "value_1" - ] - }, - { - "count": 10, - "values": [ - "value_2" - ] - } - ] } }, - "AggregateResult": { + "ObjectPatch": { "type": "object", + "description": "Custom, application specific metadata. String key -> String value.", "oneOf": [ { - "$ref": "#/components/schemas/CountAggregateResult" + "$ref": "#/components/schemas/ObjectPatchSet" }, { - "$ref": "#/components/schemas/ValuesAggregateResult" + "$ref": "#/components/schemas/ObjectPatchAddRemove" } ] }, - "Label": { + "ObjectPatchSet": { + "title": "set", "type": "object", - "title": "Label", "required": [ - "externalId" + "set" ], - "description": "A label assigned to a resource.", "properties": { - "externalId": { - "description": "An external ID to a predefined label definition.", - "allOf": [ - { - "$ref": "#/components/schemas/CogniteExternalId" - } - ] + "set": { + "uniqueItems": true, + "type": "object", + "description": "Set the key-value pairs. All existing key-value pairs will be removed.", + "additionalProperties": { + "type": "string" + }, + "example": { + "key1": "value1", + "key2": "value2" + } } } }, - "LabelList": { - "type": "array", - "description": "A list of the labels associated with this resource item.", - "minItems": 0, - "maxItems": 10, - "uniqueItems": true, - "items": { - "$ref": "#/components/schemas/Label" + "ObjectPatchAddRemove": { + "title": "add/remove", + "type": "object", + "properties": { + "add": { + "uniqueItems": true, + "type": "object", + "description": "Add the key-value pairs. Values for existing keys will be overwritten.", + "additionalProperties": { + "type": "string" + }, + "example": { + "key1": "value1", + "key2": "value2" + } + }, + "remove": { + "uniqueItems": true, + "type": "array", + "description": "Remove the key-value pairs with the specified keys.", + "example": [ + "value1", + "value2" + ], + "items": { + "type": "string" + } + } } }, - "LabelFilter": { - "description": "Return only the resource matching the specified label constraints.", + "ObjectPatchEvent": { + "type": "object", + "description": "Custom, application specific metadata. String key -> String value. Limits of updated event: Maximum length of key is 128 bytes, value 128000 bytes, up to 256 key-value pairs, of total size at most 200000.", "oneOf": [ { - "$ref": "#/components/schemas/LabelContainsAnyFilter" + "$ref": "#/components/schemas/ObjectPatchEventSet" }, { - "$ref": "#/components/schemas/LabelContainsAllFilter" + "$ref": "#/components/schemas/ObjectPatchEventAddRemove" } ] }, - "LabelContainsAnyFilter": { + "ObjectPatchEventSet": { + "title": "set", "type": "object", "required": [ - "containsAny" + "set" ], "properties": { - "containsAny": { - "description": "The resource item contains at least one of the listed labels.", - "type": "array", - "minItems": 1, - "maxItems": 10, - "items": { - "$ref": "#/components/schemas/Label" + "set": { + "uniqueItems": true, + "type": "object", + "description": "Set the key-value pairs. All existing key-value pairs will be removed.", + "additionalProperties": { + "type": "string", + "maxLength": 128000 + }, + "x-maxKeyLength": 128, + "x-maxTotalSize": 200000, + "maxProperties": 256, + "example": { + "key1": "value1", + "key2": "value2" } } } }, - "LabelContainsAllFilter": { + "ObjectPatchEventAddRemove": { + "title": "add/remove", "type": "object", - "required": [ - "containsAll" - ], "properties": { - "containsAll": { - "description": "The resource item contains at least all the listed labels.", + "add": { + "uniqueItems": true, + "type": "object", + "description": "Add the key-value pairs. Values for existing keys will be overwritten.", + "additionalProperties": { + "type": "string", + "maxLength": 128000 + }, + "x-maxKeyLength": 128, + "x-maxTotalSize": 200000, + "maxProperties": 256, + "example": { + "key1": "value1", + "key2": "value2" + } + }, + "remove": { + "uniqueItems": true, "type": "array", - "minItems": 1, - "maxItems": 10, + "description": "Remove the key-value pairs with the specified keys.", + "example": [ + "value1", + "value2" + ], "items": { - "$ref": "#/components/schemas/Label" + "type": "string" } } } }, - "LabelDefinitionExternalId": { + "ObjectPatchAsset": { + "type": "object", + "description": "Custom, application specific metadata. String key -> String value. Limits of updated asset: Maximum length of key is 128 bytes, value 10240 bytes, up to 256 key-value pairs, of total size at most 10240.", + "oneOf": [ + { + "$ref": "#/components/schemas/ObjectPatchSetAsset" + }, + { + "$ref": "#/components/schemas/ObjectPatchAddRemoveAsset" + } + ] + }, + "ObjectPatchSetAsset": { + "title": "set", "type": "object", "required": [ - "externalId" + "set" ], "properties": { - "externalId": { - "$ref": "#/components/schemas/CogniteExternalId" + "set": { + "uniqueItems": true, + "type": "object", + "description": "Set the key-value pairs. All existing key-value pairs will be removed.", + "additionalProperties": { + "type": "string", + "maxLength": 10240 + }, + "x-maxKeyLength": 128, + "x-maxTotalSize": 10240, + "maxProperties": 256, + "example": { + "key1": "value1", + "key2": "value2" + } } } }, - "LabelDefinitionExternalIdList": { + "ObjectPatchAddRemoveAsset": { + "title": "add/remove", "type": "object", - "required": [ - "items" - ], "properties": { - "items": { - "type": "array", - "minItems": 1, - "maxItems": 1000, + "add": { + "uniqueItems": true, + "type": "object", + "description": "Add the key-value pairs. Values for existing keys will be overwritten.", + "additionalProperties": { + "type": "string", + "maxLength": 10240 + }, + "x-maxKeyLength": 128, + "x-maxTotalSize": 10240, + "maxProperties": 256, + "example": { + "key1": "value1", + "key2": "value2" + } + }, + "remove": { "uniqueItems": true, + "type": "array", + "description": "Remove the key-value pairs with the specified keys.", + "example": [ + "value1", + "value2" + ], "items": { - "$ref": "#/components/schemas/LabelDefinitionExternalId" + "type": "string" } } } }, - "LabelsPatch": { - "description": "Updates the resource's assigned labels.\n\nLabels 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.", + "ObjectPatchDataSet": { + "type": "object", + "description": "Custom, application specific metadata. String key -> String value. Limits of updated asset: Maximum length of key is 128 bytes, value 10240 bytes, up to 256 key-value pairs, of total size at most 10240.", "oneOf": [ { - "$ref": "#/components/schemas/LabelsAddRemove" + "$ref": "#/components/schemas/ObjectPatchSetDataSet" }, { - "$ref": "#/components/schemas/LabelsSet" + "$ref": "#/components/schemas/ObjectPatchAddRemoveDataSet" } ] }, - "LabelsAddRemove": { + "ObjectPatchSetDataSet": { + "title": "set", + "type": "object", + "required": [ + "set" + ], + "properties": { + "set": { + "uniqueItems": true, + "type": "object", + "description": "Set the key-value pairs. All existing key-value pairs will be removed.", + "additionalProperties": { + "type": "string", + "maxLength": 10240 + }, + "x-maxKeyLength": 128, + "x-maxTotalSize": 10240, + "maxProperties": 256, + "example": { + "key1": "value1", + "key2": "value2" + } + } + } + }, + "ObjectPatchAddRemoveDataSet": { + "title": "add/remove", "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" + "type": "object", + "description": "Add the key-value pairs. Values for existing keys will be overwritten.", + "additionalProperties": { + "type": "string", + "maxLength": 10240 + }, + "x-maxKeyLength": 128, + "x-maxTotalSize": 10240, + "maxProperties": 256, + "example": { + "key1": "value1", + "key2": "value2" } }, "remove": { - "type": "array", - "description": "A list of the labels to remove from a resource.", - "minItems": 0, - "maxItems": 10, "uniqueItems": true, + "type": "array", + "description": "Remove the key-value pairs with the specified keys.", + "example": [ + "value1", + "value2" + ], "items": { - "$ref": "#/components/schemas/Label" + "type": "string" } } } }, - "LabelsSet": { + "ArrayPatchLongSet": { + "title": "set", "type": "object", + "required": [ + "set" + ], "properties": { "set": { - "type": "array", - "description": "A list of the labels to replace (set) to a resource.", - "minItems": 0, - "maxItems": 10, "uniqueItems": true, + "type": "array", "items": { - "$ref": "#/components/schemas/Label" + "type": "integer", + "format": "int64" } } } }, - "EqualsFilter": { + "ArrayPatchLongAddOrRemove": { + "title": "add/remove", "type": "object", - "title": "equals", - "required": [ - "equals" - ], "properties": { - "equals": { - "required": [ - "property", - "value" - ], - "description": "Matches items where the given property is **exactly** equal to the given value.\n", - "type": "object", - "properties": { - "property": { - "$ref": "#/components/schemas/FilterProperty" - }, - "value": { - "$ref": "#/components/schemas/Value" - } + "add": { + "uniqueItems": true, + "type": "array", + "items": { + "type": "integer", + "format": "int64" + } + }, + "remove": { + "uniqueItems": true, + "type": "array", + "items": { + "type": "integer", + "format": "int64" } } } }, - "InFilter": { + "ArrayPatchLong": { "type": "object", - "title": "in", - "required": [ - "in" - ], - "properties": { - "in": { - "required": [ - "property", - "values" - ], - "description": "Matches items where the given property is **exactly** equal to one of the given values. This filter can only be applied to single-valued properties.\n", - "type": "object", - "properties": { - "property": { - "$ref": "#/components/schemas/FilterProperty" - }, - "values": { - "$ref": "#/components/schemas/Values" - } - } + "oneOf": [ + { + "$ref": "#/components/schemas/ArrayPatchLongSet" + }, + { + "$ref": "#/components/schemas/ArrayPatchLongAddOrRemove" } - } + ], + "description": "Change that will be applied to the array." }, - "GenericRangeFilter": { + "ArrayPatchStringSet": { + "title": "set", "type": "object", - "title": "range", "required": [ - "range" + "set" ], "properties": { - "range": { - "required": [ - "property" - ], - "description": "Matches items that contain terms within the provided range.\nIt is not allowed to specify both inclusive and exclusive bounds (such as `gte`, `gt`) together.\n`gte`: Greater than or equal to.\n`gt`: Greater than.\n`lte`: Less than or equal to.\n`lt`: Less than.\n", - "type": "object", - "properties": { - "property": { - "$ref": "#/components/schemas/FilterProperty" - }, - "gte": { - "$ref": "#/components/schemas/RangeValue" - }, - "gt": { - "$ref": "#/components/schemas/RangeValue" - }, - "lte": { - "$ref": "#/components/schemas/RangeValue" - }, - "lt": { - "$ref": "#/components/schemas/RangeValue" - } + "set": { + "uniqueItems": true, + "type": "array", + "items": { + "type": "string" } } } }, - "PrefixFilter": { + "ArrayPatchStringAddOrRemove": { + "title": "add/remove", "type": "object", - "title": "prefix", - "required": [ - "prefix" - ], "properties": { - "prefix": { - "required": [ - "property", - "value" - ], - "description": "Matches items that contain a specific prefix in the provided property.\n", - "type": "object", - "properties": { - "property": { - "$ref": "#/components/schemas/FilterProperty" - }, - "value": { - "$ref": "#/components/schemas/StringValue" - } + "add": { + "uniqueItems": true, + "type": "array", + "items": { + "type": "string" + } + }, + "remove": { + "uniqueItems": true, + "type": "array", + "items": { + "type": "string" } } } }, - "AggregateInFilter": { + "ArrayPatchString": { "type": "object", - "title": "in", - "required": [ - "in" - ], - "properties": { - "in": { - "required": [ - "values" - ], - "description": "Matches items where the given property is **exactly** equal to one of the given values. This filter can only be applied to single-valued properties.\n", - "type": "object", - "properties": { - "values": { - "$ref": "#/components/schemas/Values" - } - } + "oneOf": [ + { + "$ref": "#/components/schemas/ArrayPatchStringSet" + }, + { + "$ref": "#/components/schemas/ArrayPatchStringAddOrRemove" } - } + ], + "description": "Change that will be applied to the array." }, - "AggregatePrefixFilter": { + "SinglePatchBoolean": { "type": "object", - "title": "prefix", + "title": "set", "required": [ - "prefix" + "set" ], "properties": { - "prefix": { - "required": [ - "value" - ], - "description": "Matches aggregate values that contain a specific prefix.\n", - "type": "object", - "properties": { - "value": { - "$ref": "#/components/schemas/StringValue" - } - } + "set": { + "type": "boolean" } } }, - "AggregateRangeFilter": { - "type": "object", - "title": "range", - "required": [ - "range" - ], + "JsonArrayInt64": { + "type": "string", + "format": "jsonArray(int64)", + "example": "[1238712837, 238712361376, 23786237623]" + }, + "JsonArrayString": { + "type": "string", + "format": "jsonArray(string)" + }, + "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" + }, + "EpochTimestampRange": { + "description": "Range between two timestamps (inclusive).", + "type": "object", "properties": { - "range": { - "description": "Matches items that contain terms within the provided range.\nIt's not allowed to specify both inclusive and exclusive bounds (such as `gte`, `gt`) together.\n`gte`: Greater than or equal to.\n`gt`: Greater than.\n`lte`: Less than or equal to.\n`lt`: Less than.\n", - "type": "object", - "properties": { - "gte": { - "$ref": "#/components/schemas/RangeValue" - }, - "gt": { - "$ref": "#/components/schemas/RangeValue" - }, - "lte": { - "$ref": "#/components/schemas/RangeValue" - }, - "lt": { - "$ref": "#/components/schemas/RangeValue" - } - } + "max": { + "description": "Maximum timestamp (inclusive). The timestamp is represented as number of milliseconds since 00:00:00 Thursday, 1 January 1970, Coordinated Universal Time (UTC), minus leap seconds.", + "type": "integer", + "minimum": 0, + "format": "int64" + }, + "min": { + "description": "Minimum timestamp (inclusive). The timestamp is represented as number of milliseconds since 00:00:00 Thursday, 1 January 1970, Coordinated Universal Time (UTC), minus leap seconds.", + "type": "integer", + "minimum": 0, + "format": "int64" } } }, - "ExistsFilter": { + "IsNull": { + "type": "object", + "properties": { + "isNull": { + "type": "boolean", + "example": true, + "description": "Set to true if you want to search for data with field value not set, false to search for cases where some value is present." + } + } + }, + "Partition": { + "description": "Splits the data set into `N` partitions.\nThe attribute is specified as a \"M/N\" string, where `M` is a natural number in the interval of `[1, N]`.\nYou need to follow the cursors within each partition in order to receive all the data.\n\nTo prevent unexpected problems and maximize read throughput, you should at most use 10 (N <= 10) partitions.\n\nWhen using more than 10 partitions, CDF may reduce the number of partitions silently.\nFor 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\nCDF will change `N` to `N = K = 10` and process the request.\nBut if you specify the `X/N` `partition` value where `X = 11` (`X > K`) and `N = 20` - i.e. `\"partition\": \"11/20\"`- then\nCDF will reply with an empty result list and no cursor in the response.\\\n\nIn future releases of the resource APIs, Cognite may reject requests if you specify more than 10 partitions.\nWhen Cognite enforces this behavior, the requests will result in a 400 Bad Request status.\n", + "type": "string", + "example": "1/10" + }, + "PartitionLimited10": { + "description": "Splits the data set into `N` partitions.\nThe attribute is specified as a \"M/N\" string, where `M` is a natural number in the interval of `[1, N]`.\nYou need to follow the cursors within each partition in order to receive all the data.\n\nThe maximum number of allowed partitions (`N`) is 10.\n\nCognite rejects requests if you specify more than 10 partitions.\nWhen Cognite enforces this behavior, the requests result in a 400 Bad Request status.\n", + "type": "string", + "example": "1/3" + }, + "PartitionObject": { + "type": "object", + "properties": { + "partition": { + "$ref": "#/components/schemas/Partition" + } + } + }, + "PartitionObjectLimited10": { + "type": "object", + "properties": { + "partition": { + "$ref": "#/components/schemas/PartitionLimited10" + } + } + }, + "Cursor": { + "description": "Cursor for paging through results.", + "type": "object", + "properties": { + "cursor": { + "type": "string", + "example": "4zj0Vy2fo0NtNMb229mI9r1V3YG5NBL752kQz1cKtwo" + } + } + }, + "SetLongField": { "type": "object", - "title": "exists", "required": [ - "exists" + "set" ], "properties": { - "exists": { - "required": [ - "property" - ], - "description": "Will match items that have a value in the specified property.\n", - "type": "object", - "properties": { - "property": { - "$ref": "#/components/schemas/FilterProperty" - } - } + "set": { + "type": "integer", + "format": "int64" } } }, - "ContainsAnyFilter": { + "SetStringField": { "type": "object", - "title": "containsAny", + "title": "set", "required": [ - "containsAny" + "set" ], "properties": { - "containsAny": { - "required": [ - "property", - "values" - ], - "description": "Matches items where the property contains one or more of the given values.\nThis filter can only be applied to multivalued properties.\n", - "type": "object", - "properties": { - "property": { - "$ref": "#/components/schemas/FilterProperty" - }, - "values": { - "$ref": "#/components/schemas/Values" - } - } + "set": { + "type": "string" } } }, - "ContainsAllFilter": { + "SetIntegerField": { "type": "object", - "title": "containsAll", + "title": "set", "required": [ - "containsAll" + "set" ], "properties": { - "containsAll": { - "required": [ - "property", - "values" - ], - "description": "Matches items where the property contains all the given values.\nThis filter can only be applied to multivalued properties.\n", - "type": "object", - "properties": { - "property": { - "$ref": "#/components/schemas/FilterProperty" - }, - "values": { - "$ref": "#/components/schemas/Values" - } - } + "set": { + "type": "integer" } } }, - "SearchFilter": { + "SetBooleanField": { "type": "object", - "title": "search", + "title": "set", "required": [ - "search" + "set" ], "properties": { - "search": { - "required": [ - "property", - "value" + "set": { + "type": "boolean" + } + } + }, + "GeoLocationFilter": { + "description": "Only include files matching the specified geographic relation.", + "type": "object", + "required": [ + "relation", + "shape" + ], + "properties": { + "relation": { + "type": "string", + "enum": [ + "INTERSECTS", + "DISJOINT", + "WITHIN" ], - "description": "Fuzzy search in the specified property. Introduced to provide functional parity with `/search` endpoints.\n", + "description": "One of the supported queries." + }, + "shape": { "type": "object", - "properties": { - "property": { - "$ref": "#/components/schemas/FilterProperty" + "description": "Represents the points, curves and surfaces in the coordinate space.", + "oneOf": [ + { + "$ref": "#/components/schemas/Point" }, - "value": { - "$ref": "#/components/schemas/Value" + { + "$ref": "#/components/schemas/LineString" + }, + { + "$ref": "#/components/schemas/Polygon" + }, + { + "$ref": "#/components/schemas/MultiLineString" + }, + { + "$ref": "#/components/schemas/MultiPolygon" } + ], + "discriminator": { + "propertyName": "type" } } } }, - "FilterProperty": { - "description": "Property you want to filter. Use a list of strings to specify nested properties.\n\nExample:\n\nYou have the object \n```\n{\n \"room\": {\n \"id\": \"b53\"\n }, \n \"roomId\": \"a23\"\n}\n```\n\nUse `[\"room\", \"id\"]` to return the value in the nested `id` property, which is a part of the `room` object. \n\nYou can also read the value(s) in the standalone property `roomId` with `[\"roomId\"]`.\n", - "type": "array", - "minItems": 1, - "maxItems": 3, - "items": { - "type": "string" - } - }, - "AggregateProperty": { - "description": "Property you want to aggregate.\nUse a list of strings to specify nested properties.\nThe same way the properties are represented in aggregate responses.\n\nExample:\n\nYou have the object \n```\n{\n \"metadata\": {\n \"id\": \"b53\"\n }, \n \"source\": \"a23\"\n}\n```\n\nTo address \"id\" metadata key use `[\"metadata\", \"id\"]` property. \nYou can also aggregate the value(s) for the standalone property `source` with `[\"source\"]`.\n", - "type": "array", - "minItems": 1, - "maxItems": 2, - "items": { - "type": "string" - }, - "example": [ - "metadata", - "key1" - ] - }, - "Value": { - "description": "Value you wish to find in the provided property.", + "GeoLocationGeometry": { + "type": "object", + "required": [ + "type" + ], + "description": "Represents the points, curves and surfaces in the coordinate space.", "oneOf": [ { - "type": "string" + "$ref": "#/components/schemas/Point" }, { - "type": "number" + "$ref": "#/components/schemas/LineString" }, { - "type": "integer" + "$ref": "#/components/schemas/Polygon" }, { - "type": "boolean" - } - ] - }, - "Values": { - "description": "One or more values you wish to find in the provided property.", - "type": "array", - "minItems": 1, - "maxItems": 5000, - "items": { - "$ref": "#/components/schemas/Value" - } - }, - "RangeValue": { - "description": "Value you wish to find in the provided property using a range clause.", - "oneOf": [ - { - "type": "string" + "$ref": "#/components/schemas/MultiPoint" }, { - "type": "number" + "$ref": "#/components/schemas/MultiLineString" }, { - "type": "integer" + "$ref": "#/components/schemas/MultiPolygon" } - ] + ], + "discriminator": { + "propertyName": "type" + } }, - "MatchAllFilter": { + "Point": { "type": "object", - "title": "matchAll", "required": [ - "matchAll" + "type", + "coordinates" ], "properties": { - "matchAll": { - "description": "All the listed items must match the clause.", - "type": "object" + "type": { + "type": "string", + "enum": [ + "Point" + ] + }, + "coordinates": { + "$ref": "#/components/schemas/PointCoordinates" } } }, - "ProjectUrlName": { - "type": "string", - "description": "The URL name of the project. This is used as part of the request path in API calls.\n\nValid URL names contains between 3 and 32 characters, and may only contain\nEnglish letters, digits and hyphens, must contain at least one letter\nand may not start or end with a hyphen.\n", - "minLength": 3, - "maxLength": 32, - "example": "publicdata" + "PointCoordinates": { + "description": "Coordinates of a point in 2D space, described as an array of 2 numbers.\n\nExample: `[4.306640625, 60.205710352530346]`\n", + "type": "array", + "minItems": 2, + "maxItems": 2, + "items": { + "type": "number" + } }, - "CreateAdvancedJoinsRequestSchema": { + "LineString": { "type": "object", "required": [ - "items" + "type", + "coordinates" ], "properties": { - "items": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AdvancedJoin" - }, - "minItems": 1, - "maxItems": 100 + "type": { + "type": "string", + "enum": [ + "LineString" + ] + }, + "coordinates": { + "$ref": "#/components/schemas/LineStringCoordinates" } } }, - "CreateAdvancedJoinsResponseSchema": { + "LineStringCoordinates": { + "description": "Coordinates of a line described by a list of two or more points.\nEach point is defined as a pair of two numbers in an array, representing coordinates of a point in 2D space.\n\nExample: `[[30, 10], [10, 30], [40, 40]]`\n", + "type": "array", + "minItems": 2, + "items": { + "$ref": "#/components/schemas/PointCoordinates" + } + }, + "Polygon": { "type": "object", "required": [ - "items" + "type", + "coordinates" ], "properties": { - "items": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AdvancedJoin" - }, - "minItems": 1, - "maxItems": 100 + "type": { + "type": "string", + "enum": [ + "Polygon" + ] + }, + "coordinates": { + "$ref": "#/components/schemas/PolygonCoordinates" } } }, - "ListAdvancedJoinsResponseSchema": { + "PolygonCoordinates": { + "description": "List of one or more linear rings representing a shape.\n\nA 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.\n\nEach Point is defined as an array of 2 numbers, representing coordinates of a point in 2D space.\n\nExample: `[[[35, 10], [45, 45], [15, 40], [10, 20], [35, 10]], [[20, 30], [35, 35], [30, 20], [20, 30]]]`\n", + "type": "array", + "minItems": 2, + "items": { + "$ref": "#/components/schemas/LineStringCoordinates" + } + }, + "MultiPoint": { "type": "object", "required": [ - "items" + "type", + "coordinates" ], "properties": { - "items": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AdvancedJoin" - }, - "minItems": 1, - "maxItems": 1000 - }, - "nextCursor": { + "type": { "type": "string", - "description": "A cursor that can be passed to this endpoint to get the next page of items." + "enum": [ + "MultiPoint" + ] + }, + "coordinates": { + "$ref": "#/components/schemas/MultiPointCoordinates" } } }, - "UpdateAdvancedJoinMatchersRequestSchema": { + "MultiPointCoordinates": { + "description": "List of Points. Each Point is defined as an array of 2 numbers, representing coordinates of a point in 2D space.\n\nExample: `[[35, 10], [45, 45]]`\n", + "type": "array", + "items": { + "$ref": "#/components/schemas/PointCoordinates" + } + }, + "MultiLineString": { "type": "object", "required": [ - "items" + "type", + "coordinates" ], "properties": { - "items": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AdvancedJoinsUpdateItem" - }, - "minItems": 1, - "maxItems": 1000 + "type": { + "type": "string", + "enum": [ + "MultiLineString" + ] + }, + "coordinates": { + "$ref": "#/components/schemas/MultiLineStringCoordinates" } } }, - "AdvancedJoinsUpdateItem": { + "MultiLineStringCoordinates": { + "description": "List of lines where each line (LineString) is defined as a list of two or more points.\nEach point is defined as a pair of two numbers in an array, representing coordinates of a point in 2D space.\n\nExample: `[[[30, 10], [10, 30]], [[35, 10], [10, 30], [40, 40]]]`\n", + "type": "array", + "items": { + "$ref": "#/components/schemas/LineStringCoordinates" + } + }, + "MultiPolygon": { "type": "object", "required": [ - "externalId", - "update" + "type", + "coordinates" ], "properties": { - "externalId": { - "$ref": "#/components/schemas/CogniteExternalId" + "type": { + "type": "string", + "enum": [ + "MultiPolygon" + ] }, - "update": { - "$ref": "#/components/schemas/AdvancedJoinPatch" + "coordinates": { + "$ref": "#/components/schemas/MultiPolygonCoordinates" } } }, - "AdvancedJoinPatch": { - "type": "object", - "description": "Matchers can be added, removed, or replaced (set).", + "MultiPolygonCoordinates": { + "description": "List of multiple polygons.\n\nEach polygon is defined as a list of one or more linear rings representing a shape.\n\nA 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.\n\nEach Point is defined as an array of 2 numbers, representing coordinates of a point in 2D space.\n\nExample: `[[[[30, 20], [45, 40], [10, 40], [30, 20]]], [[[15, 5], [40, 10], [10, 20], [5, 10], [15, 5]]]]`\n", + "type": "array", + "items": { + "$ref": "#/components/schemas/PolygonCoordinates" + } + }, + "GeoLocation": { + "description": "Geographic metadata.", "required": [ - "matchers" + "type", + "geometry" ], + "type": "object", "properties": { - "matchers": { - "oneOf": [ - { - "$ref": "#/components/schemas/AdvancedJoinPatchSetMatchers" - }, - { - "$ref": "#/components/schemas/AdvancedJoinPatchAddRemoveMatchers" - } - ] + "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." } } }, - "AdvancedJoinPatchSetMatchers": { + "SinglePatchGeoLocation": { + "title": "set", + "type": "object", + "oneOf": [ + { + "$ref": "#/components/schemas/SetGeoLocation" + }, + { + "$ref": "#/components/schemas/RemoveField" + } + ], + "description": "Set a new value for the geoLocation, or remove the value." + }, + "SetGeoLocation": { + "title": "set", "type": "object", + "required": [ + "set" + ], "properties": { "set": { - "type": "array", - "description": "The matchers to replace the advanced join's matchers entirely.", - "items": { - "$ref": "#/components/schemas/Matcher" - }, - "minItems": 0, - "maxItems": 100 + "$ref": "#/components/schemas/GeoLocation" } } }, - "AdvancedJoinPatchAddRemoveMatchers": { + "RemoveField": { + "title": "remove", "type": "object", + "required": [ + "setNull" + ], "properties": { - "add": { - "type": "array", - "description": "The matchers to add to the advanced join's matchers.\nThey will be added if they aren't already assigned.", - "items": { - "$ref": "#/components/schemas/Matcher" - }, - "minItems": 0, - "maxItems": 100 - }, - "remove": { - "type": "array", - "description": "The matchers to remove from the advanced join's matchers.\nThey will be removed if they exist.", - "items": { - "$ref": "#/components/schemas/Matcher" - }, - "minItems": 0, - "maxItems": 100 + "setNull": { + "type": "boolean", + "example": true } } }, - "AdvancedJoin": { - "allOf": [ + "SetExternalId": { + "type": "object", + "title": "set", + "required": [ + "set" + ], + "properties": { + "set": { + "$ref": "#/components/schemas/CogniteExternalId" + } + } + }, + "SetDataSetId": { + "type": "object", + "required": [ + "set" + ], + "properties": { + "set": { + "$ref": "#/components/schemas/DataSetId" + } + } + }, + "SetDescription": { + "type": "object", + "title": "set", + "required": [ + "set" + ], + "properties": { + "set": { + "$ref": "#/components/schemas/ResourceDescription" + } + } + }, + "SinglePatchResourceDescription": { + "title": "set", + "type": "object", + "oneOf": [ { - "type": "object", - "required": [ - "externalId" - ], - "properties": { - "externalId": { - "$ref": "#/components/schemas/CogniteExternalId" - }, - "matchers": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Matcher" - }, - "minItems": 0, - "maxItems": 100 - } - } + "$ref": "#/components/schemas/SetDescription" }, { - "oneOf": [ - { - "$ref": "#/components/schemas/DirectRelationTarget" - } - ] + "$ref": "#/components/schemas/RemoveField" } ] }, - "Matcher": { + "SinglePatchDataSetId": { + "title": "set", + "type": "object", "oneOf": [ { - "$ref": "#/components/schemas/RAWMatcher" + "$ref": "#/components/schemas/SetDataSetId" + }, + { + "$ref": "#/components/schemas/RemoveField" } ] }, - "RAWMatcher": { + "SinglePatchExternalId": { + "title": "set", "type": "object", - "description": "The Raw matcher can be used when you already have a collection of known matches, stored in a Raw table.", + "oneOf": [ + { + "$ref": "#/components/schemas/SetExternalId" + }, + { + "$ref": "#/components/schemas/RemoveField" + } + ], + "description": "Set a new value for the externalId, or remove the value. Must be unique for the resource type." + }, + "SinglePatchLong": { + "title": "set", + "type": "object", + "oneOf": [ + { + "$ref": "#/components/schemas/SetLongField" + }, + { + "$ref": "#/components/schemas/RemoveField" + } + ], + "description": "Set a new value for the long, or remove the value." + }, + "ModifyPatchInteger": { + "title": "modify", + "type": "object", + "oneOf": [ + { + "$ref": "#/components/schemas/SetIntegerField" + }, + { + "$ref": "#/components/schemas/RemoveField" + } + ], + "description": "Set a new value for the integer, or remove the value" + }, + "ModifyPatchBoolean": { + "title": "modify", + "type": "object", + "oneOf": [ + { + "$ref": "#/components/schemas/SetBooleanField" + }, + { + "$ref": "#/components/schemas/RemoveField" + } + ], + "description": "Set a new value for the boolean, or remove the value" + }, + "SinglePatchString": { + "title": "set", + "type": "object", + "oneOf": [ + { + "$ref": "#/components/schemas/SetStringField" + }, + { + "$ref": "#/components/schemas/RemoveField" + } + ], + "description": "Set a new value for the string, or remove the value." + }, + "SinglePatchRequiredString": { + "title": "set", + "type": "object", + "properties": { + "set": { + "type": "string" + } + }, + "description": "Set a new value for the string.", "required": [ - "type", - "dbName", - "tableName", - "fromColumnKey", - "toColumnKey" + "set" + ] + }, + "CogniteInternalId": { + "description": "A server-generated ID for the object.", + "type": "integer", + "minimum": 1, + "maximum": 9007199254740991, + "format": "int64" + }, + "CogniteExternalId": { + "description": "The external ID provided by the client. Must be unique for the resource type.", + "type": "string", + "maxLength": 255, + "example": "my.known.id" + }, + "CogniteInstanceId": { + "description": "The ID of an [instance in Cognite Data Models](https://docs.cognite.com/cdf/dm/dm_concepts/dm_spaces_instances#instance).", + "type": "object", + "required": [ + "space", + "externalId" ], "properties": { - "type": { - "type": "string", - "enum": [ - "raw" - ] - }, - "dbName": { + "space": { "type": "string", "minLength": 1, - "maxLength": 32, - "description": "Name of the Raw database" + "maxLength": 43 }, - "tableName": { + "externalId": { "type": "string", "minLength": 1, - "maxLength": 64, - "description": "Name of the Raw database table" - }, - "fromColumnKey": { - "type": "string", - "description": "The column containing the external ids of the node at the start of the relationship." - }, - "toColumnKey": { - "type": "string", - "description": "The column containing the external ids of the node at the end of the relationship." + "maxLength": 255 } } }, - "DirectRelationTarget": { + "CogniteExternalIdPrefix": { + "description": "Filter by this (case-sensitive) prefix for the external ID.", + "type": "string", + "maxLength": 255, + "example": "my.known.prefix" + }, + "DataSetInternalId": { "type": "object", + "title": "DataSetInternalId", "required": [ - "type", - "space", - "viewExternalId", - "viewVersion", - "propertyName" + "id" ], "properties": { - "type": { - "type": "string", - "enum": [ - "direct" - ] + "id": { + "$ref": "#/components/schemas/CogniteInternalId" + } + } + }, + "DataSetExternalId": { + "type": "object", + "title": "DataSetExternalId", + "required": [ + "externalId" + ], + "properties": { + "externalId": { + "$ref": "#/components/schemas/CogniteExternalId" + } + } + }, + "DataSetIdEither": { + "oneOf": [ + { + "$ref": "#/components/schemas/DataSetInternalId" }, - "space": { - "$ref": "#/components/schemas/SpaceSpecification" + { + "$ref": "#/components/schemas/DataSetExternalId" + } + ] + }, + "DataSetIdEithers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DataSetIdEither" + } + }, + "IdEither": { + "type": "object", + "description": "Either an internal ID, or an external ID.", + "oneOf": [ + { + "properties": { + "id": { + "$ref": "#/components/schemas/CogniteInternalId" + } + }, + "required": [ + "id" + ] }, - "viewExternalId": { - "$ref": "#/components/schemas/DMSExternalId" + { + "properties": { + "externalId": { + "$ref": "#/components/schemas/CogniteExternalId" + } + }, + "required": [ + "externalId" + ] + } + ], + "example": { + "externalId": "my.known.id" + } + }, + "DataSetId": { + "description": "The dataSet Id for the item.", + "type": "integer", + "minimum": 1, + "maximum": 9007199254740991, + "format": "int64" + }, + "DataModelingStatus": { + "type": "string", + "description": "Status of data modeling for a project.", + "enum": [ + "DATA_MODELING_ONLY", + "DATA_MODELING_FIRST", + "HYBRID" + ] + }, + "TimestampOrStringStart": { + "oneOf": [ + { + "type": "integer", + "default": 0 }, - "viewVersion": { - "$ref": "#/components/schemas/DMSVersion" + { + "type": "string" + } + ], + "description": "Get datapoints starting from, and including, this time. The format is N[timeunit]-ago where\ntimeunit is w,d,h,m,s. Example: '2d-ago' gets datapoints that are up to 2 days\nold. You can also specify time in milliseconds since epoch. Note that for aggregates, the start time is rounded down to a whole granularity unit (in UTC timezone). Daily granularities (d)\nare rounded to 0:00 AM; hourly granularities (h) to the start of the hour, etc." + }, + "TimestampOrStringEnd": { + "oneOf": [ + { + "type": "integer" }, - "propertyName": { + { "type": "string", - "description": "The name of the property that holds the direct relation" + "default": "now" } - } + ], + "description": "Get datapoints up to, but excluding, this point in time. Same format as for start. Note that when using aggregates, the end will be rounded up such that the last aggregate represents a full aggregation interval containing the original end, where the interval is the granularity unit times the granularity multiplier. For granularity 2d, the aggregation interval is 2 days, if end was originally 3 days after the start, it will be rounded to 4 days after the start." }, - "DeleteAdvancedJoinsRequestSchema": { + "CountAggregateResult": { + "description": "Common aggregate structure to represent aggregate result which have one count for filter resultset (Documents Count, Property Cardinality, etc).", + "title": "CountResult", "type": "object", "required": [ "items" @@ -22407,669 +23104,721 @@ "properties": { "items": { "type": "array", + "minItems": 1, + "maxItems": 1, "items": { "type": "object", "required": [ - "externalId" + "count" ], "properties": { - "externalId": { - "$ref": "#/components/schemas/CogniteExternalId" + "count": { + "type": "integer", + "description": "Number of items in this aggregation group.", + "format": "int64" } } - }, - "minItems": 1, - "maxItems": 100 + } } + }, + "example": { + "items": [ + { + "count": 10 + } + ] } }, - "CreateAdvancedJoinMatchesRequestSchema": { + "StringValue": { + "title": "String", + "description": "A unique string value in the field.", "type": "object", "required": [ - "items" + "value" ], "properties": { - "items": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AdvancedJoinMatch" - }, - "minItems": 1, - "maxItems": 100 + "value": { + "type": "string" } } }, - "CreateAdvancedJoinMatchesResponseSchema": { + "AggregateStringValues": { + "title": "Strings", "type": "object", "required": [ - "items" + "count", + "values" ], "properties": { - "items": { + "count": { + "description": "Number of items in this aggregation bucket.", + "type": "integer", + "format": "int64" + }, + "values": { + "description": "An array of unique string values in the property.", "type": "array", - "items": { - "$ref": "#/components/schemas/AdvancedJoinMatch" - }, "minItems": 1, - "maxItems": 100 + "maxItems": 1, + "items": { + "type": "string" + } + }, + "value": { + "deprecated": true, + "description": "A unique string value in the field.", + "type": "string" } } }, - "ListAdvancedJoinMatchesResponseSchema": { + "AggregateIntegerValues": { + "title": "Integers", "type": "object", "required": [ - "items" + "count", + "values" ], "properties": { - "items": { + "count": { + "description": "Number of items in this aggregation bucket.", + "type": "integer", + "format": "int64" + }, + "values": { + "description": "An array of unique integer values in the property.", "type": "array", - "items": { - "$ref": "#/components/schemas/AdvancedJoinMatch" - }, "minItems": 1, - "maxItems": 1000 + "maxItems": 1, + "items": { + "type": "integer", + "format": "int64" + } }, - "nextCursor": { - "type": "string", - "description": "A cursor that can be passed to this endpoint to get the next page of items." + "value": { + "deprecated": true, + "description": "A unique integer value in the field.", + "type": "integer", + "format": "int64" } } }, - "DeleteAdvancedJoinMatchesRequestSchema": { + "AggregatePropertyValues": { + "title": "Properties", + "description": "A single bucket to represent `uniqueProperties` aggregate result.\n", "type": "object", "required": [ - "items" + "count", + "values" ], "properties": { - "items": { + "count": { + "description": "Number of items in this aggregation bucket.", + "type": "integer", + "format": "int64" + }, + "values": { + "description": "An array of unique properties for UniqueProperties aggregate.\n", "type": "array", + "minItems": 1, + "maxItems": 1, "items": { "type": "object", "required": [ - "externalId" + "property" ], "properties": { - "externalId": { - "$ref": "#/components/schemas/CogniteExternalId" + "property": { + "$ref": "#/components/schemas/AggregateProperty" } + }, + "example": { + "property": [ + "metadata", + "key1" + ] } - }, - "minItems": 1, - "maxItems": 100 - } - } - }, - "AdvancedJoinMatch": { - "allOf": [ - { + } + }, + "value": { + "deprecated": true, + "description": "A unique property for UniqueProperties aggregate.\n", "type": "object", "required": [ - "externalId", - "advancedJoinExternalId", - "originExternalId", - "linkedExternalId" + "property" ], "properties": { - "externalId": { - "$ref": "#/components/schemas/CogniteExternalId" - }, - "advancedJoinExternalId": { - "$ref": "#/components/schemas/CogniteExternalId" - }, - "originExternalId": { - "$ref": "#/components/schemas/CogniteExternalId" - }, - "linkedExternalId": { - "$ref": "#/components/schemas/CogniteExternalId" + "property": { + "$ref": "#/components/schemas/AggregateProperty" } } } - ] - }, - "AdvancedJoinJobId": { - "type": "string", - "description": "ID of an advanced join job. These are always UUIDs." + } }, - "RunAdvancedJoinRequestSchema": { + "ValuesAggregateResult": { + "description": "Common aggregate structure to represent aggregate result which have count buckets for filter resultset (Unique Property Values, Not Null Document Properties, etc).", + "title": "BucketsResult", "type": "object", "required": [ - "advancedJoinExternalId" + "items" ], "properties": { - "advancedJoinExternalId": { - "$ref": "#/components/schemas/CogniteExternalId" - } - } - }, - "RunAdvancedJoinResponseSchema": { - "allOf": [ - { - "type": "object", - "required": [ - "jobId" - ], - "properties": { - "jobId": { - "$ref": "#/components/schemas/AdvancedJoinJobId" - } + "items": { + "type": "array", + "minItems": 1, + "maxItems": 1000, + "items": { + "type": "object", + "oneOf": [ + { + "$ref": "#/components/schemas/AggregateStringValues" + }, + { + "$ref": "#/components/schemas/AggregateIntegerValues" + }, + { + "$ref": "#/components/schemas/AggregatePropertyValues" + } + ] } - }, + } + }, + "example": { + "items": [ + { + "count": 5, + "values": [ + "value_1" + ] + }, + { + "count": 10, + "values": [ + "value_2" + ] + } + ] + } + }, + "AggregateResult": { + "type": "object", + "oneOf": [ { - "$ref": "#/components/schemas/StatusSchema" + "$ref": "#/components/schemas/CountAggregateResult" }, { - "type": "object", - "required": [ - "advancedJoinExternalId" - ], - "properties": { - "advancedJoinExternalId": { - "$ref": "#/components/schemas/CogniteExternalId" - } - } + "$ref": "#/components/schemas/ValuesAggregateResult" } ] }, - "MeasureMappedPercentageRequestSchema": { + "Label": { "type": "object", + "title": "Label", "required": [ - "space", - "viewExternalId", - "viewVersion" + "externalId" ], + "description": "A label assigned to a resource.", "properties": { - "space": { - "$ref": "#/components/schemas/SpaceSpecification" - }, - "viewExternalId": { - "$ref": "#/components/schemas/DMSExternalId" - }, - "viewVersion": { - "$ref": "#/components/schemas/DMSVersion" - }, - "dummyResponse": { - "type": "boolean", - "description": "Whether to return a bogus response that complies with the expected schema.\nThis will be removed in a future iteration.", - "default": false + "externalId": { + "description": "An external ID to a predefined label definition.", + "allOf": [ + { + "$ref": "#/components/schemas/CogniteExternalId" + } + ] } } }, - "MeasureMappedPercentageResponseSchema": { - "allOf": [ - { - "type": "object", - "required": [ - "jobId" - ], - "properties": { - "jobId": { - "$ref": "#/components/schemas/AdvancedJoinJobId" - } - } - }, + "LabelList": { + "type": "array", + "description": "A list of the labels associated with this resource item.", + "minItems": 0, + "maxItems": 10, + "uniqueItems": true, + "items": { + "$ref": "#/components/schemas/Label" + } + }, + "LabelFilter": { + "description": "Return only the resource matching the specified label constraints.", + "oneOf": [ { - "$ref": "#/components/schemas/StatusSchema" + "$ref": "#/components/schemas/LabelContainsAnyFilter" }, { - "type": "object", - "properties": { - "items": { - "type": "array", - "items": { - "type": "object", - "required": [ - "propertyName", - "mappedPercentage" - ], - "properties": { - "propertyName": { - "type": "string", - "description": "The name of this property" - }, - "mappedPercentage": { - "type": "number", - "minimum": 0, - "maximum": 100 - } - } - } - } - } + "$ref": "#/components/schemas/LabelContainsAllFilter" } ] }, - "EstimateQualityRequestSchema": { + "LabelContainsAnyFilter": { "type": "object", "required": [ - "advancedJoinExternalId", - "matcher" + "containsAny" ], "properties": { - "advancedJoinExternalId": { - "$ref": "#/components/schemas/CogniteExternalId" - }, - "dummyResponse": { - "type": "boolean", - "description": "Whether to return a bogus response that complies with the expected schema.\nThis will be removed in a future iteration.", - "default": false - }, - "matcher": { - "$ref": "#/components/schemas/Matcher" + "containsAny": { + "description": "The resource item contains at least one of the listed labels.", + "type": "array", + "minItems": 1, + "maxItems": 10, + "items": { + "$ref": "#/components/schemas/Label" + } } } }, - "EstimateQualityResponseSchema": { - "allOf": [ - { - "type": "object", - "required": [ - "jobId" - ], - "properties": { - "jobId": { - "$ref": "#/components/schemas/AdvancedJoinJobId" - } - } - }, - { - "$ref": "#/components/schemas/StatusSchema" - }, - { - "type": "object", - "required": [ - "advancedJoinExternalId", - "matcher" - ], - "properties": { - "advancedJoinExternalId": { - "$ref": "#/components/schemas/CogniteExternalId" - }, - "matcher": { - "$ref": "#/components/schemas/Matcher" - }, - "qualityScorePercent": { - "type": "number", - "description": "The quality of the Join, calculated as the ratio of correctly mapped instances to all mapped instances.", - "minimum": 0, - "maximum": 100 - }, - "confidencePercent": { - "type": "number", - "minimum": 0, - "maximum": 100 - }, - "contextualizationScorePercent": { - "type": "number", - "minimum": 0, - "maximum": 100 - } + "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" } } - ] + } }, - "SuggestImprovementsRequestSchema": { + "LabelDefinitionExternalId": { "type": "object", "required": [ - "advancedJoinExternalId" + "externalId" ], "properties": { - "advancedJoinExternalId": { + "externalId": { "$ref": "#/components/schemas/CogniteExternalId" - }, - "limit": { - "type": "integer", - "default": 20, - "minimum": 1, - "maximum": 1000 } } }, - "DirectRelationImprovementSuggestion": { + "LabelDefinitionExternalIdList": { "type": "object", + "required": [ + "items" + ], "properties": { - "type": { - "type": "string", - "enum": [ - "direct" - ] - }, - "space": { - "$ref": "#/components/schemas/SpaceSpecification" - }, - "originExternalId": { - "$ref": "#/components/schemas/NodeOrEdgeExternalId" - }, - "propertyName": { - "type": "string", - "description": "The name of the property" + "items": { + "type": "array", + "minItems": 1, + "maxItems": 1000, + "uniqueItems": true, + "items": { + "$ref": "#/components/schemas/LabelDefinitionExternalId" + } } } }, - "ImprovementSuggestion": { + "LabelsPatch": { + "description": "Updates the resource's assigned labels.\n\nLabels 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/DirectRelationImprovementSuggestion" + "$ref": "#/components/schemas/LabelsAddRemove" + }, + { + "$ref": "#/components/schemas/LabelsSet" } ] }, - "SuggestImprovementsResponseSchema": { - "allOf": [ - { - "type": "object", - "required": [ - "jobId" - ], - "properties": { - "jobId": { - "$ref": "#/components/schemas/AdvancedJoinJobId" - } + "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" } }, - { - "$ref": "#/components/schemas/StatusSchema" - }, - { - "type": "object", - "required": [ - "advancedJoinExternalId" - ], - "properties": { - "advancedJoinExternalId": { - "$ref": "#/components/schemas/CogniteExternalId" - }, - "improvementSuggestions": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ImprovementSuggestion" - } - } + "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" } } - ] - }, - "AssetName": { - "type": "string", - "description": "The name of the asset.", - "minLength": 1, - "maxLength": 140 - }, - "AssetDescription": { - "type": "string", - "description": "The description of the asset.", - "maxLength": 500 - }, - "AssetQuery": { - "type": "string", - "description": "Whitespace-separated terms to search for in assets. Does a best-effort fuzzy search in relevant fields (currently name and description) for variations of any of the search terms, and orders results by relevance. Uses a different search algorithm than the name and description parameters, and will generally give much better results. Matching and ordering is not guaranteed to be stable over time, and the fields being searched may be extended.", - "minLength": 1, - "maxLength": 140 - }, - "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 - }, - "AssetParentExternalId": { - "description": "The external ID of the parent. This will be resolved to an internal ID and stored as `parentId`.", - "type": "string", - "maxLength": 255, - "example": "my.known.id" - }, - "AssetSource": { - "type": "string", - "maxLength": 128, - "description": "The source of the asset." + } }, - "SetAssetSource": { + "LabelsSet": { "type": "object", - "title": "set", - "required": [ - "set" - ], "properties": { "set": { - "$ref": "#/components/schemas/AssetSource" + "type": "array", + "description": "A list of the labels to replace (set) to a resource.", + "minItems": 0, + "maxItems": 10, + "uniqueItems": true, + "items": { + "$ref": "#/components/schemas/Label" + } } } }, - "AssetInternalId": { + "EqualsFilter": { "type": "object", + "title": "equals", "required": [ - "id" + "equals" ], "properties": { - "id": { - "$ref": "#/components/schemas/CogniteInternalId" + "equals": { + "required": [ + "property", + "value" + ], + "description": "Matches items where the given property is **exactly** equal to the given value.\n", + "type": "object", + "properties": { + "property": { + "$ref": "#/components/schemas/FilterProperty" + }, + "value": { + "$ref": "#/components/schemas/Value" + } + } } } }, - "AssetExternalId": { + "InFilter": { "type": "object", + "title": "in", "required": [ - "externalId" + "in" ], "properties": { - "externalId": { - "$ref": "#/components/schemas/CogniteExternalId" + "in": { + "required": [ + "property", + "values" + ], + "description": "Matches items where the given property is **exactly** equal to one of the given values. This filter can only be applied to single-valued properties.\n", + "type": "object", + "properties": { + "property": { + "$ref": "#/components/schemas/FilterProperty" + }, + "values": { + "$ref": "#/components/schemas/Values" + } + } } } }, - "AssetIdEither": { - "oneOf": [ - { - "$ref": "#/components/schemas/AssetInternalId" - }, - { - "$ref": "#/components/schemas/AssetExternalId" - } - ] - }, - "AssetIdentifier": { + "GenericRangeFilter": { "type": "object", + "title": "range", "required": [ - "id" + "range" ], "properties": { - "id": { - "$ref": "#/components/schemas/CogniteInternalId" - } - } - }, - "DeleteRequest": { - "type": "object", - "allOf": [ - { - "type": "object", + "range": { "required": [ - "items" + "property" ], + "description": "Matches items that contain terms within the provided range.\nIt is not allowed to specify both inclusive and exclusive bounds (such as `gte`, `gt`) together.\n`gte`: Greater than or equal to.\n`gt`: Greater than.\n`lte`: Less than or equal to.\n`lt`: Less than.\n", + "type": "object", "properties": { - "items": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AssetIdEither" - }, - "maxItems": 1000, - "minItems": 1 + "property": { + "$ref": "#/components/schemas/FilterProperty" }, - "recursive": { - "description": "Recursively delete all asset subtrees under the specified IDs.", - "type": "boolean", - "default": false + "gte": { + "$ref": "#/components/schemas/RangeValue" + }, + "gt": { + "$ref": "#/components/schemas/RangeValue" + }, + "lte": { + "$ref": "#/components/schemas/RangeValue" + }, + "lt": { + "$ref": "#/components/schemas/RangeValue" } } - }, - { - "$ref": "#/components/schemas/IgnoreUnknownIdsField" } - ] + } }, - "AssetDataIds": { + "PrefixFilter": { "type": "object", - "allOf": [ - { - "type": "object", + "title": "prefix", + "required": [ + "prefix" + ], + "properties": { + "prefix": { "required": [ - "items" + "property", + "value" ], + "description": "Matches items that contain a specific prefix in the provided property.\n", + "type": "object", "properties": { - "items": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AssetIdEither" - }, - "maxItems": 1000, - "minItems": 1 + "property": { + "$ref": "#/components/schemas/FilterProperty" + }, + "value": { + "$ref": "#/components/schemas/StringValue" } } - }, - { - "$ref": "#/components/schemas/IgnoreUnknownIdsField" - }, - { - "$ref": "#/components/schemas/AggregatedProperties" } - ] + } }, - "ExternalAsset": { + "AggregateInFilter": { "type": "object", + "title": "in", "required": [ - "name" + "in" ], "properties": { - "externalId": { - "$ref": "#/components/schemas/CogniteExternalId" - }, - "name": { - "$ref": "#/components/schemas/AssetName" - }, - "parentId": { - "description": "The parent node's ID used to specify parent-child relationship.\n\nYou should not use this field in combination with the parentExternalId field.\n", - "allOf": [ - { - "$ref": "#/components/schemas/CogniteInternalId" + "in": { + "required": [ + "values" + ], + "description": "Matches items where the given property is **exactly** equal to one of the given values. This filter can only be applied to single-valued properties.\n", + "type": "object", + "properties": { + "values": { + "$ref": "#/components/schemas/Values" } - ] - }, - "parentExternalId": { - "description": "The parent node's external ID used to specify the parent-child relationship.\nWhen specifying this field, the API will resolve the external ID into an internal ID and use the internal ID to store the parent-child relation.\nAs a result, a later change to update the parent's external ID will not affect this parent-child relationship as it is based on internal ID.\n\nYou should not use this field in combination with the parentId field.\n", - "allOf": [ - { - "$ref": "#/components/schemas/CogniteExternalId" + } + } + } + }, + "AggregatePrefixFilter": { + "type": "object", + "title": "prefix", + "required": [ + "prefix" + ], + "properties": { + "prefix": { + "required": [ + "value" + ], + "description": "Matches aggregate values that contain a specific prefix.\n", + "type": "object", + "properties": { + "value": { + "$ref": "#/components/schemas/StringValue" } - ] - }, - "description": { - "$ref": "#/components/schemas/AssetDescription" - }, - "dataSetId": { - "description": "The id of the dataset this asset belongs to.", - "allOf": [ - { - "$ref": "#/components/schemas/CogniteInternalId" + } + } + } + }, + "AggregateRangeFilter": { + "type": "object", + "title": "range", + "required": [ + "range" + ], + "properties": { + "range": { + "description": "Matches items that contain terms within the provided range.\nIt's not allowed to specify both inclusive and exclusive bounds (such as `gte`, `gt`) together.\n`gte`: Greater than or equal to.\n`gt`: Greater than.\n`lte`: Less than or equal to.\n`lt`: Less than.\n", + "type": "object", + "properties": { + "gte": { + "$ref": "#/components/schemas/RangeValue" + }, + "gt": { + "$ref": "#/components/schemas/RangeValue" + }, + "lte": { + "$ref": "#/components/schemas/RangeValue" + }, + "lt": { + "$ref": "#/components/schemas/RangeValue" } - ] - }, - "metadata": { - "$ref": "#/components/schemas/AssetMetadata" - }, - "source": { - "$ref": "#/components/schemas/AssetSource" - }, - "labels": { - "$ref": "#/components/schemas/LabelList" - }, - "geoLocation": { - "$ref": "#/components/schemas/GeoLocation" + } } - }, - "description": "A representation of a physical asset, for example a factory or a piece of equipment." + } }, - "Asset": { - "allOf": [ - { + "ExistsFilter": { + "type": "object", + "title": "exists", + "required": [ + "exists" + ], + "properties": { + "exists": { + "required": [ + "property" + ], + "description": "Will match items that have a value in the specified property.\n", "type": "object", + "properties": { + "property": { + "$ref": "#/components/schemas/FilterProperty" + } + } + } + } + }, + "ContainsAnyFilter": { + "type": "object", + "title": "containsAny", + "required": [ + "containsAny" + ], + "properties": { + "containsAny": { "required": [ - "rootId", - "createdTime", - "lastUpdatedTime" + "property", + "values" ], + "description": "Matches items where the property contains one or more of the given values.\nThis filter can only be applied to multivalued properties.\n", + "type": "object", "properties": { - "createdTime": { - "$ref": "#/components/schemas/EpochTimestamp" - }, - "lastUpdatedTime": { - "$ref": "#/components/schemas/EpochTimestamp" - }, - "rootId": { - "description": "The ID of the root asset. The root asset is the asset spanning the entire asset hierarchy that this asset belongs to.", - "allOf": [ - { - "$ref": "#/components/schemas/CogniteInternalId" - } - ] + "property": { + "$ref": "#/components/schemas/FilterProperty" }, - "aggregates": { - "$ref": "#/components/schemas/AggregateResultItem" + "values": { + "$ref": "#/components/schemas/Values" + } + } + } + } + }, + "ContainsAllFilter": { + "type": "object", + "title": "containsAll", + "required": [ + "containsAll" + ], + "properties": { + "containsAll": { + "required": [ + "property", + "values" + ], + "description": "Matches items where the property contains all the given values.\nThis filter can only be applied to multivalued properties.\n", + "type": "object", + "properties": { + "property": { + "$ref": "#/components/schemas/FilterProperty" }, - "parentId": { - "description": "The ID of the parent of this node, null if it is the root node.", - "allOf": [ - { - "$ref": "#/components/schemas/CogniteInternalId" - } - ] + "values": { + "$ref": "#/components/schemas/Values" + } + } + } + } + }, + "SearchFilter": { + "type": "object", + "title": "search", + "required": [ + "search" + ], + "properties": { + "search": { + "required": [ + "property", + "value" + ], + "description": "Fuzzy search in the specified property. Introduced to provide functional parity with `/search` endpoints.\n", + "type": "object", + "properties": { + "property": { + "$ref": "#/components/schemas/FilterProperty" }, - "parentExternalId": { - "description": "The external ID of the parent. The property is omitted if the asset doesn't have a parent or if the parent doesn't have externalId.", - "allOf": [ - { - "$ref": "#/components/schemas/CogniteExternalId" - } - ] + "value": { + "$ref": "#/components/schemas/Value" } } + } + } + }, + "FilterProperty": { + "description": "Property you want to filter. Use a list of strings to specify nested properties.\n\nExample:\n\nYou have the object\n```\n{\n \"room\": {\n \"id\": \"b53\"\n },\n \"roomId\": \"a23\"\n}\n```\n\nUse `[\"room\", \"id\"]` to return the value in the nested `id` property, which is a part of the `room` object.\n\nYou can also read the value(s) in the standalone property `roomId` with `[\"roomId\"]`.\n", + "type": "array", + "minItems": 1, + "maxItems": 3, + "items": { + "type": "string" + } + }, + "AggregateProperty": { + "description": "Property you want to aggregate.\nUse a list of strings to specify nested properties.\nThe same way the properties are represented in aggregate responses.\n\nExample:\n\nYou have the object\n```\n{\n \"metadata\": {\n \"id\": \"b53\"\n },\n \"source\": \"a23\"\n}\n```\n\nTo address \"id\" metadata key use `[\"metadata\", \"id\"]` property.\\\nYou can also aggregate the value(s) for the standalone property `source` with `[\"source\"]`.\n", + "type": "array", + "minItems": 1, + "maxItems": 2, + "items": { + "type": "string" + }, + "example": [ + "metadata", + "key1" + ] + }, + "Value": { + "description": "Value you wish to find in the provided property.", + "oneOf": [ + { + "type": "string" }, { - "$ref": "#/components/schemas/ExternalAsset" + "type": "number" }, { - "$ref": "#/components/schemas/AssetInternalId" + "type": "integer" + }, + { + "type": "boolean" } ] }, - "AggregateResultItem": { - "description": "Aggregated metrics of the asset.", - "type": "object", - "properties": { - "childCount": { - "type": "integer", - "description": "Number of direct descendants for the asset.", - "format": "int32", - "minimum": 0 + "Values": { + "description": "One or more values you wish to find in the provided property.", + "type": "array", + "minItems": 1, + "maxItems": 5000, + "items": { + "$ref": "#/components/schemas/Value" + } + }, + "RangeValue": { + "title": "rangeBound", + "description": "Value you wish to find in the provided property using a range clause.", + "oneOf": [ + { + "type": "string" }, - "depth": { - "type": "integer", - "description": "Asset path depth (number of levels below root node).", - "format": "int32", - "minimum": 0 + { + "type": "number" }, - "path": { - "description": "IDs of assets on the path to the asset.", - "type": "array", - "items": { - "$ref": "#/components/schemas/AssetIdentifier" - } + { + "type": "integer" + } + ] + }, + "MatchAllFilter": { + "type": "object", + "title": "matchAll", + "required": [ + "matchAll" + ], + "properties": { + "matchAll": { + "description": "All the listed items must match the clause.", + "type": "object" } } }, - "DataAsset": { + "ProjectUrlName": { + "type": "string", + "description": "The URL name of the project. This is used as part of the request path in API calls.\n\nValid URL names contains between 3 and 32 characters, and may only contain\nEnglish letters, digits and hyphens, must contain at least one letter\nand may not start or end with a hyphen.\n", + "minLength": 3, + "maxLength": 32, + "example": "publicdata" + }, + "CreateAdvancedJoinsRequestSchema": { "type": "object", "required": [ "items" @@ -23078,12 +23827,14 @@ "items": { "type": "array", "items": { - "$ref": "#/components/schemas/Asset" - } + "$ref": "#/components/schemas/AdvancedJoin" + }, + "minItems": 1, + "maxItems": 100 } } }, - "DataAssetChange": { + "CreateAdvancedJoinsResponseSchema": { "type": "object", "required": [ "items" @@ -23092,29 +23843,14 @@ "items": { "type": "array", "items": { - "$ref": "#/components/schemas/AssetChange" + "$ref": "#/components/schemas/AdvancedJoin" }, "minItems": 1, - "maxItems": 1000 + "maxItems": 100 } } }, - "DataExternalAssetItem": { - "allOf": [ - { - "$ref": "#/components/schemas/ExternalAsset" - }, - { - "type": "object", - "properties": { - "parentExternalId": { - "$ref": "#/components/schemas/AssetParentExternalId" - } - } - } - ] - }, - "DataExternalAsset": { + "ListAdvancedJoinsResponseSchema": { "type": "object", "required": [ "items" @@ -23123,14 +23859,18 @@ "items": { "type": "array", "items": { - "$ref": "#/components/schemas/DataExternalAssetItem" + "$ref": "#/components/schemas/AdvancedJoin" }, "minItems": 1, "maxItems": 1000 + }, + "nextCursor": { + "type": "string", + "description": "A cursor that can be passed to this endpoint to get the next page of items." } } }, - "DataWithCursorAsset": { + "UpdateAdvancedJoinMatchersRequestSchema": { "type": "object", "required": [ "items" @@ -23139,1986 +23879,1622 @@ "items": { "type": "array", "items": { - "$ref": "#/components/schemas/Asset" - } - }, - "nextCursor": { - "type": "string", - "description": "The cursor to get the next page of results (if available)." + "$ref": "#/components/schemas/AdvancedJoinsUpdateItem" + }, + "minItems": 1, + "maxItems": 1000 } - }, - "description": "A list of objects along with possible cursors to get the next or previous page of results." - }, - "AggregatedProperty": { - "type": "string", - "enum": [ - "childCount", - "path", - "depth" - ] + } }, - "AggregatedProperties": { + "AdvancedJoinsUpdateItem": { "type": "object", + "required": [ + "externalId", + "update" + ], "properties": { - "aggregatedProperties": { - "description": "Set of aggregated properties to include", - "type": "array", - "items": { - "$ref": "#/components/schemas/AggregatedProperty" - } + "externalId": { + "$ref": "#/components/schemas/CogniteExternalId" + }, + "update": { + "$ref": "#/components/schemas/AdvancedJoinPatch" } } }, - "AssetFilter": { + "AdvancedJoinPatch": { "type": "object", + "description": "Matchers can be added, removed, or replaced (set).", + "required": [ + "matchers" + ], "properties": { - "filter": { - "type": "object", - "description": "Filter on assets with strict matching.", - "title": "Filter", - "properties": { - "name": { - "$ref": "#/components/schemas/AssetName" - }, - "parentIds": { - "description": "Return only the direct descendants of the specified assets.", - "type": "array", - "minItems": 1, - "maxItems": 100, - "items": { - "$ref": "#/components/schemas/CogniteInternalId" - } - }, - "parentExternalIds": { - "description": "Return only the direct descendants of the specified assets.", - "type": "array", - "minItems": 1, - "maxItems": 100, - "items": { - "$ref": "#/components/schemas/CogniteExternalId" - } - }, - "rootIds": { - "description": "This parameter is deprecated. Use `assetSubtreeIds` instead. Only include these root assets and their descendants.", - "deprecated": true, - "type": "array", - "minItems": 1, - "maxItems": 100, - "items": { - "$ref": "#/components/schemas/AssetIdEither" - } - }, - "assetSubtreeIds": { - "type": "array", - "minItems": 1, - "maxItems": 100, - "description": "Only include assets in subtrees rooted at the specified assets (including the roots given). If the total size of the given subtrees exceeds 100,000 assets, an error will be returned.", - "items": { - "$ref": "#/components/schemas/AssetIdEither" - } - }, - "dataSetIds": { - "type": "array", - "maxItems": 1000, - "items": { - "$ref": "#/components/schemas/DataSetIdEither" - } - }, - "metadata": { - "$ref": "#/components/schemas/AssetMetadata" - }, - "source": { - "$ref": "#/components/schemas/AssetSource" - }, - "createdTime": { - "$ref": "#/components/schemas/EpochTimestampRange" - }, - "lastUpdatedTime": { - "$ref": "#/components/schemas/EpochTimestampRange" - }, - "root": { - "type": "boolean", - "description": "Whether the filtered assets are root assets, or not. Set to True to only list root assets." - }, - "externalIdPrefix": { - "$ref": "#/components/schemas/CogniteExternalIdPrefix" - }, - "labels": { - "$ref": "#/components/schemas/LabelFilter" + "matchers": { + "oneOf": [ + { + "$ref": "#/components/schemas/AdvancedJoinPatchSetMatchers" }, - "geoLocation": { - "$ref": "#/components/schemas/GeoLocationFilter" + { + "$ref": "#/components/schemas/AdvancedJoinPatchAddRemoveMatchers" } - } + ] } } }, - "AssetLimit": { + "AdvancedJoinPatchSetMatchers": { "type": "object", "properties": { - "limit": { - "description": "Limits the number of results to return.", - "type": "integer", - "format": "int32", - "minimum": 1, - "maximum": 1000, - "default": 100 + "set": { + "type": "array", + "description": "The matchers to replace the advanced join's matchers entirely.", + "items": { + "$ref": "#/components/schemas/Matcher" + }, + "minItems": 0, + "maxItems": 100 } } }, - "AssetSort": { + "AdvancedJoinPatchAddRemoveMatchers": { "type": "object", "properties": { - "sort": { - "description": "Sort by array of selected properties.\n", + "add": { "type": "array", - "minItems": 1, - "maxItems": 2, + "description": "The matchers to add to the advanced join's matchers.\nThey will be added if they aren't already assigned.", "items": { - "$ref": "#/components/schemas/AssetSortProperty" + "$ref": "#/components/schemas/Matcher" }, - "example": [ - { - "property": [ - "createdTime" - ], - "order": "desc" + "minItems": 0, + "maxItems": 100 + }, + "remove": { + "type": "array", + "description": "The matchers to remove from the advanced join's matchers.\nThey will be removed if they exist.", + "items": { + "$ref": "#/components/schemas/Matcher" + }, + "minItems": 0, + "maxItems": 100 + } + } + }, + "AdvancedJoin": { + "allOf": [ + { + "type": "object", + "required": [ + "externalId" + ], + "properties": { + "externalId": { + "$ref": "#/components/schemas/CogniteExternalId" }, + "matchers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Matcher" + }, + "minItems": 0, + "maxItems": 100 + } + } + }, + { + "oneOf": [ { - "property": [ - "metadata", - "customMetadataKey" - ], - "nulls": "first" + "$ref": "#/components/schemas/DirectRelationTarget" } ] } - } + ] }, - "AssetSortProperty": { + "Matcher": { + "oneOf": [ + { + "$ref": "#/components/schemas/RAWMatcher" + } + ] + }, + "RAWMatcher": { "type": "object", + "description": "The Raw matcher can be used when you already have a collection of known matches, stored in a Raw table.", "required": [ - "property" + "type", + "dbName", + "tableName", + "fromColumnKey", + "toColumnKey" ], "properties": { - "property": { - "type": "array", - "description": "Property to sort on.\nSorting can be done on the following properties:\n | Property |\n |---------------------------------|\n | `[\"createdTime\"]` |\n | `[\"dataSetId\"]` |\n | `[\"description\"]` |\n | `[\"externalId\"]` |\n | `[\"lastUpdatedTime\"]` |\n | `[\"metadata\", \"someCustomKey\"]` |\n | `[\"name\"]` |\n | `[\"source\"]` |\n | `[\"_score_\"]` |", - "minItems": 1, - "maxItems": 2, - "items": { - "type": "string" - } - }, - "order": { + "type": { "type": "string", - "description": "The `order` attribute is optional and defaults to `desc` for `_score_` and `asc` for all other properties.", "enum": [ - "asc", - "desc" + "raw" ] }, - "nulls": { + "dbName": { "type": "string", - "description": "The `nulls` attribute is optional and defaults to `auto`.\n`auto` is translated to `last` for the `asc` order and to `first` for the `desc` order by the service.", - "enum": [ - "first", - "last", - "auto" - ], - "default": "auto" + "minLength": 1, + "maxLength": 32, + "description": "Name of the Raw database" + }, + "tableName": { + "type": "string", + "minLength": 1, + "maxLength": 64, + "description": "Name of the Raw database table" + }, + "fromColumnKey": { + "type": "string", + "description": "The column containing the external ids of the node at the start of the relationship." + }, + "toColumnKey": { + "type": "string", + "description": "The column containing the external ids of the node at the end of the relationship." } } }, - "AssetAggregateRequest": { - "description": "Aggregation request of assets. Filters behave the same way as for the `filter` endpoint. Default aggregation is `count`.", - "oneOf": [ - { - "$ref": "#/components/schemas/AssetCountAggregate" - }, - { - "$ref": "#/components/schemas/AssetWithPropertyCountAggregate" - }, - { - "$ref": "#/components/schemas/AssetCardinalityValuesAggregate" + "DirectRelationTarget": { + "type": "object", + "required": [ + "type", + "space", + "viewExternalId", + "viewVersion", + "propertyName" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "direct" + ] }, - { - "$ref": "#/components/schemas/AssetCardinalityPropertiesAggregate" + "space": { + "$ref": "#/components/schemas/SpaceSpecification" }, - { - "$ref": "#/components/schemas/AssetUniqueValuesAggregate" + "viewExternalId": { + "$ref": "#/components/schemas/DMSExternalId" }, - { - "$ref": "#/components/schemas/AssetUniquePropertiesAggregate" + "viewVersion": { + "$ref": "#/components/schemas/DMSVersion" }, - { - "$ref": "#/components/schemas/AssetMetadataKeysAggregate" + "propertyName": { + "type": "string", + "description": "The name of the property that holds the direct relation" + } + } + }, + "DeleteAdvancedJoinsRequestSchema": { + "type": "object", + "required": [ + "items" + ], + "properties": { + "items": { + "type": "array", + "items": { + "type": "object", + "required": [ + "externalId" + ], + "properties": { + "externalId": { + "$ref": "#/components/schemas/CogniteExternalId" + } + } + }, + "minItems": 1, + "maxItems": 100 + } + } + }, + "CreateAdvancedJoinMatchesRequestSchema": { + "type": "object", + "required": [ + "items" + ], + "properties": { + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AdvancedJoinMatch" + }, + "minItems": 1, + "maxItems": 100 + } + } + }, + "CreateAdvancedJoinMatchesResponseSchema": { + "type": "object", + "required": [ + "items" + ], + "properties": { + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AdvancedJoinMatch" + }, + "minItems": 1, + "maxItems": 100 + } + } + }, + "ListAdvancedJoinMatchesResponseSchema": { + "type": "object", + "required": [ + "items" + ], + "properties": { + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AdvancedJoinMatch" + }, + "minItems": 1, + "maxItems": 1000 }, - { - "$ref": "#/components/schemas/AssetMetadataValuesAggregate" + "nextCursor": { + "type": "string", + "description": "A cursor that can be passed to this endpoint to get the next page of items." } - ] + } }, - "AssetCardinalityValuesAggregate": { + "DeleteAdvancedJoinMatchesRequestSchema": { + "type": "object", + "required": [ + "items" + ], + "properties": { + "items": { + "type": "array", + "items": { + "type": "object", + "required": [ + "externalId" + ], + "properties": { + "externalId": { + "$ref": "#/components/schemas/CogniteExternalId" + } + } + }, + "minItems": 1, + "maxItems": 100 + } + } + }, + "AdvancedJoinMatch": { "allOf": [ { "type": "object", - "title": "ApproximateCardinalityForValues", - "description": "Request values approximate cardinality aggregate on a specific property.", "required": [ - "aggregate" + "externalId", + "advancedJoinExternalId", + "originExternalId", + "linkedExternalId" ], "properties": { - "aggregate": { - "description": "Type of aggregation to apply.\n`cardinalityValues`: Get approximate number of unique values for the specified property.\n", - "type": "string", - "enum": [ - "cardinalityValues" - ] + "externalId": { + "$ref": "#/components/schemas/CogniteExternalId" }, - "aggregateFilter": { - "$ref": "#/components/schemas/AssetAggregateFilter" + "advancedJoinExternalId": { + "$ref": "#/components/schemas/CogniteExternalId" + }, + "originExternalId": { + "$ref": "#/components/schemas/CogniteExternalId" + }, + "linkedExternalId": { + "$ref": "#/components/schemas/CogniteExternalId" } } - }, - { - "$ref": "#/components/schemas/AssetAdvancedFilter" - }, - { - "$ref": "#/components/schemas/AssetFilter" - }, - { - "$ref": "#/components/schemas/AssetAggregateProperties" } ] }, - "AssetCardinalityPropertiesAggregate": { + "AdvancedJoinJobId": { + "type": "string", + "description": "ID of an advanced join job. These are always UUIDs." + }, + "RunAdvancedJoinRequestSchema": { + "type": "object", + "required": [ + "advancedJoinExternalId" + ], + "properties": { + "advancedJoinExternalId": { + "$ref": "#/components/schemas/CogniteExternalId" + } + } + }, + "RunAdvancedJoinResponseSchema": { "allOf": [ { "type": "object", - "title": "ApproximateCardinalityForProperties", - "description": "Request resource properties approximate cardinality aggregate.", "required": [ - "aggregate" + "jobId" ], "properties": { - "aggregate": { - "description": "Type of aggregation to apply.\n`cardinalityProperties`: Get approximate number of unique properties.\n", - "type": "string", - "enum": [ - "cardinalityProperties" - ] - }, - "aggregateFilter": { - "$ref": "#/components/schemas/AssetAggregateFilter" + "jobId": { + "$ref": "#/components/schemas/AdvancedJoinJobId" } } }, { - "$ref": "#/components/schemas/AssetAdvancedFilter" - }, - { - "$ref": "#/components/schemas/AssetFilter" + "$ref": "#/components/schemas/StatusSchema" }, - { - "properties": { - "path": { - "description": "The scope in every document to aggregate properties.\nThe only value allowed now is [\"metadata\"].\nIt means to aggregate only metadata properties (aka keys).\n", - "type": "array", - "minItems": 1, - "maxItems": 1, - "items": { - "type": "string", - "enum": [ - "metadata" - ] - }, - "default": [ - "metadata" - ] - } - } - } - ] - }, - "AssetUniqueValuesAggregate": { - "allOf": [ { "type": "object", - "title": "UniqueValues", - "description": "Request unique value buckets aggregate on a specific Asset property.\nEach bucket is defined by the `values` array and has the number of the `values` occurrences.", "required": [ - "aggregate" + "advancedJoinExternalId" ], "properties": { - "aggregate": { - "description": "Type of aggregation to apply.\n`uniqueValues`: Get unique values (up to max 1000) in the specified property ordered by the frequency.\nNote: When aggregate on the `[\"metadata\"]` property, a value may occur multiple times in one Asset for different metadata keys.\nEach occurrence is counted.\n", - "type": "string", - "enum": [ - "uniqueValues" - ] - }, - "aggregateFilter": { - "$ref": "#/components/schemas/AssetAggregateFilter" + "advancedJoinExternalId": { + "$ref": "#/components/schemas/CogniteExternalId" } } + } + ] + }, + "MeasureMappedPercentageRequestSchema": { + "type": "object", + "required": [ + "space", + "viewExternalId", + "viewVersion" + ], + "properties": { + "space": { + "$ref": "#/components/schemas/SpaceSpecification" }, - { - "$ref": "#/components/schemas/AssetAdvancedFilter" + "viewExternalId": { + "$ref": "#/components/schemas/DMSExternalId" }, - { - "$ref": "#/components/schemas/AssetFilter" + "viewVersion": { + "$ref": "#/components/schemas/DMSVersion" }, - { - "$ref": "#/components/schemas/AssetAggregateProperties" + "dummyResponse": { + "type": "boolean", + "description": "Whether to return a bogus response that complies with the expected schema.\nThis will be removed in a future iteration.", + "default": false } - ] + } }, - "AssetUniquePropertiesAggregate": { + "MeasureMappedPercentageResponseSchema": { "allOf": [ { "type": "object", - "title": "UniqueProperties", - "description": "Request unique non-null property buckets aggregate.", "required": [ - "aggregate" + "jobId" ], "properties": { - "aggregate": { - "description": "Type of aggregation to apply.\n`uniqueProperties`: Get unique properties (up to max 1000) in the specified document path (default path is [\"metadata\"] - metadata keys only).\nOrdered by frequency.\n", - "type": "string", - "enum": [ - "uniqueProperties" - ] - }, - "aggregateFilter": { - "$ref": "#/components/schemas/AssetAggregateFilter" + "jobId": { + "$ref": "#/components/schemas/AdvancedJoinJobId" } } }, { - "$ref": "#/components/schemas/AssetAdvancedFilter" - }, - { - "$ref": "#/components/schemas/AssetFilter" + "$ref": "#/components/schemas/StatusSchema" }, { + "type": "object", "properties": { - "path": { - "description": "The scope in every document to aggregate properties.\nThe only value allowed now is [\"metadata\"].\nIt means to aggregate only metadata properties (aka keys).\n", + "items": { "type": "array", - "minItems": 1, - "maxItems": 1, "items": { - "type": "string", - "enum": [ - "metadata" - ] - }, - "default": [ - "metadata" - ] + "type": "object", + "required": [ + "propertyName", + "mappedPercentage" + ], + "properties": { + "propertyName": { + "type": "string", + "description": "The name of this property" + }, + "mappedPercentage": { + "type": "number", + "minimum": 0, + "maximum": 100 + } + } + } } } } ] }, - "AssetCountAggregate": { - "allOf": [ - { - "type": "object", - "title": "AssetCount", - "description": "Request aggregate to count number of Assets matching the filters. Default aggregate for the endpoint.", - "properties": { - "aggregate": { - "description": "Type of aggregation to apply.\n`count`: Get approximate number of Assets matching the filters.\n", - "type": "string", - "enum": [ - "count" - ] - } - } + "EstimateQualityRequestSchema": { + "type": "object", + "required": [ + "advancedJoinExternalId", + "matcher" + ], + "properties": { + "advancedJoinExternalId": { + "$ref": "#/components/schemas/CogniteExternalId" }, - { - "$ref": "#/components/schemas/AssetAdvancedFilter" + "dummyResponse": { + "type": "boolean", + "description": "Whether to return a bogus response that complies with the expected schema.\nThis will be removed in a future iteration.", + "default": false }, - { - "$ref": "#/components/schemas/AssetFilter" + "matcher": { + "$ref": "#/components/schemas/Matcher" } - ] + } }, - "AssetWithPropertyCountAggregate": { + "EstimateQualityResponseSchema": { "allOf": [ { "type": "object", - "title": "AssetWithPropertyCount", - "description": "Request aggregate to count the number of Assets with the specific property (property is not null)\nand matching the filters.", + "required": [ + "jobId" + ], "properties": { - "aggregate": { - "description": "Type of aggregation to apply.\n`count`: Get an approximate number of Assets with the specific property (property is not null) and matching the filters.\n", - "type": "string", - "enum": [ - "count" - ] + "jobId": { + "$ref": "#/components/schemas/AdvancedJoinJobId" } } }, { - "$ref": "#/components/schemas/AssetAdvancedFilter" - }, - { - "$ref": "#/components/schemas/AssetFilter" + "$ref": "#/components/schemas/StatusSchema" }, - { - "$ref": "#/components/schemas/AssetAggregateProperties" - } - ] - }, - "AssetMetadataKeysAggregate": { - "deprecated": true, - "allOf": [ { "type": "object", - "title": "MetadataKeys", - "description": "Get unique values (up to max 1000) of metadata keys ordered by frequency.", "required": [ - "aggregate" + "advancedJoinExternalId", + "matcher" ], "properties": { - "aggregate": { - "description": "Type of aggregation to apply.\n`metadataKeys`: Get unique values of metadata keys ordered by frequency.\n", - "type": "string", - "enum": [ - "metadataKeys" - ] + "advancedJoinExternalId": { + "$ref": "#/components/schemas/CogniteExternalId" + }, + "matcher": { + "$ref": "#/components/schemas/Matcher" + }, + "qualityScorePercent": { + "type": "number", + "description": "The quality of the Join, calculated as the ratio of correctly mapped instances to all mapped instances.", + "minimum": 0, + "maximum": 100 + }, + "confidencePercent": { + "type": "number", + "minimum": 0, + "maximum": 100 + }, + "contextualizationScorePercent": { + "type": "number", + "minimum": 0, + "maximum": 100 } } + } + ] + }, + "SuggestImprovementsRequestSchema": { + "type": "object", + "required": [ + "advancedJoinExternalId" + ], + "properties": { + "advancedJoinExternalId": { + "$ref": "#/components/schemas/CogniteExternalId" }, - { - "$ref": "#/components/schemas/AssetAdvancedFilter" + "limit": { + "type": "integer", + "default": 20, + "minimum": 1, + "maximum": 1000 + } + } + }, + "DirectRelationImprovementSuggestion": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "direct" + ] + }, + "space": { + "$ref": "#/components/schemas/SpaceSpecification" + }, + "originExternalId": { + "$ref": "#/components/schemas/NodeOrEdgeExternalId" }, + "propertyName": { + "type": "string", + "description": "The name of the property" + } + } + }, + "ImprovementSuggestion": { + "oneOf": [ { - "$ref": "#/components/schemas/AssetFilter" + "$ref": "#/components/schemas/DirectRelationImprovementSuggestion" } ] }, - "AssetMetadataValuesAggregate": { - "deprecated": true, + "SuggestImprovementsResponseSchema": { "allOf": [ { "type": "object", - "title": "MetadataValues", - "description": "Get unique values (up to max 1000) of values for a particular metadata key, ordered by frequency.", "required": [ - "aggregate", - "keys" + "jobId" ], "properties": { - "aggregate": { - "description": "Type of aggregation to apply.\n`metadataValues`: Get unique values of values for a particular metadata key, ordered by frequency.\n", - "type": "string", - "enum": [ - "metadataValues" - ] + "jobId": { + "$ref": "#/components/schemas/AdvancedJoinJobId" } } }, { - "$ref": "#/components/schemas/AssetAdvancedFilter" - }, - { - "$ref": "#/components/schemas/AssetFilter" + "$ref": "#/components/schemas/StatusSchema" }, { - "$ref": "#/components/schemas/AssetAggregateKeys" + "type": "object", + "required": [ + "advancedJoinExternalId" + ], + "properties": { + "advancedJoinExternalId": { + "$ref": "#/components/schemas/CogniteExternalId" + }, + "improvementSuggestions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ImprovementSuggestion" + } + } + } } ] }, - "AssetAggregateProperties": { + "AssetName": { + "type": "string", + "description": "The name of the asset.", + "minLength": 1, + "maxLength": 140 + }, + "AssetDescription": { + "type": "string", + "description": "The description of the asset.", + "maxLength": 500 + }, + "AssetQuery": { + "type": "string", + "description": "Whitespace-separated terms to search for in assets. Does a best-effort fuzzy search in relevant fields (currently name and description) for variations of any of the search terms, and orders results by relevance. Uses a different search algorithm than the name and description parameters, and will generally give much better results. Matching and ordering is not guaranteed to be stable over time, and the fields being searched may be extended.", + "minLength": 1, + "maxLength": 140 + }, + "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 + }, + "AssetParentExternalId": { + "description": "The external ID of the parent. This will be resolved to an internal ID and stored as `parentId`.", + "type": "string", + "maxLength": 255, + "example": "my.known.id" + }, + "AssetSource": { + "type": "string", + "maxLength": 128, + "description": "The source of the asset." + }, + "SetAssetSource": { "type": "object", + "title": "set", "required": [ - "properties" + "set" ], "properties": { - "properties": { - "type": "array", - "description": "The property name(s) to apply the aggregation on. Currently limited to one property per request.", - "minItems": 1, - "maxItems": 1, - "items": { - "type": "object", - "required": [ - "property" - ], - "properties": { - "property": { - "type": "array", - "description": "It's an array of strings to allow specifying nested properties.\n Supported properties: \n | Property | Type |\n |---------------------------------|------------------------------|\n | `[\"dataSetId\"]` | number |\n | `[\"description\"]` | string |\n | `[\"labels\"]` | array of [string] |\n | `[\"name\"]` | string |\n | `[\"parentId\"]` | number |\n | `[\"rootId\"]` | number |\n | `[\"source\"]` | string |\n | `[\"metadata\"]` | string |\n | `[\"metadata\", ]` | string |", - "minItems": 1, - "maxItems": 2, - "items": { - "type": "string", - "minLength": 1, - "maxLength": 128 - }, - "example": [ - "parentId" - ] - }, - "filter": { - "$ref": "#/components/schemas/AssetAggregateFilter" - } - } - } + "set": { + "$ref": "#/components/schemas/AssetSource" } } }, - "AssetAggregateKeys": { + "AssetInternalId": { "type": "object", + "required": [ + "id" + ], "properties": { - "keys": { - "description": "For `metadataValues`, `aggregateType` sets the metadata key(s) to apply the aggregation on. Currently supports exactly one key per request.\n", - "type": "array", - "maxItems": 1, - "items": { - "type": "string" - } + "id": { + "$ref": "#/components/schemas/CogniteInternalId" } } }, - "AssetListScope": { - "allOf": [ - { - "$ref": "#/components/schemas/AssetFilter" - }, - { - "$ref": "#/components/schemas/AssetAdvancedFilter" - }, - { - "$ref": "#/components/schemas/AssetLimit" - }, - { - "$ref": "#/components/schemas/AssetSort" - }, - { - "$ref": "#/components/schemas/Cursor" - }, - { - "$ref": "#/components/schemas/AggregatedProperties" - }, - { - "$ref": "#/components/schemas/PartitionObjectLimited10" - } - ] - }, - "AssetAggregateFilter": { + "AssetExternalId": { "type": "object", - "description": "A filter DSL (Domain Specific Language) to define aggregate filter queries.\n\nSee more information about filtering DSL [here](https://docs.cognite.com/dev/concepts/resource_filtering_dsl/ \"filtering DSL\").\n", - "oneOf": [ - { - "$ref": "#/components/schemas/AssetAggregateBoolFilter" - }, - { - "$ref": "#/components/schemas/AssetAggregateLeafFilter" - } + "required": [ + "externalId" ], - "example": { - "or": [ - { - "not": { - "and": [ - { - "equals": { - "value": 10 - } - }, - { - "in": { - "values": [ - 11, - 12 - ] - } - }, - { - "range": { - "gte": 13, - "lt": 15 - } - } - ] - } - }, - { - "and": [ - { - "equals": { - "value": 42 - } - } - ] - } - ] + "properties": { + "externalId": { + "$ref": "#/components/schemas/CogniteExternalId" + } } }, - "AssetAggregateLeafFilter": { - "description": "Aggregate leaf filter.", - "title": "AggregateLeafFilter", - "type": "object", + "AssetIdEither": { "oneOf": [ { - "$ref": "#/components/schemas/AggregateInFilter" - }, - { - "$ref": "#/components/schemas/AggregatePrefixFilter" + "$ref": "#/components/schemas/AssetInternalId" }, { - "$ref": "#/components/schemas/AggregateRangeFilter" + "$ref": "#/components/schemas/AssetExternalId" } ] }, - "AssetAggregateBoolFilter": { - "description": "A query that matches items matching boolean combinations of other queries.\nIt's built using one or more boolean clauses of the following types: `and`, `or`, or `not`.\n", - "title": "AggregateBoolFilter", + "AssetIdentifier": { "type": "object", - "oneOf": [ + "required": [ + "id" + ], + "properties": { + "id": { + "$ref": "#/components/schemas/CogniteInternalId" + } + } + }, + "DeleteRequest": { + "type": "object", + "allOf": [ { "type": "object", - "title": "and", "required": [ - "and" + "items" ], "properties": { - "and": { - "description": "All of the sub-clauses in the query must appear in matching items.", + "items": { "type": "array", - "minItems": 1, "items": { - "$ref": "#/components/schemas/AssetAggregateFilter" - } + "$ref": "#/components/schemas/AssetIdEither" + }, + "maxItems": 1000, + "minItems": 1 + }, + "recursive": { + "description": "Recursively delete all asset subtrees under the specified IDs.", + "type": "boolean", + "default": false } } }, + { + "$ref": "#/components/schemas/IgnoreUnknownIdsField" + } + ] + }, + "AssetDataIds": { + "type": "object", + "allOf": [ { "type": "object", - "title": "or", "required": [ - "or" + "items" ], "properties": { - "or": { - "description": "At least one of the sub-clauses in the query must appear in matching items.", + "items": { "type": "array", - "minItems": 1, "items": { - "$ref": "#/components/schemas/AssetAggregateFilter" - } + "$ref": "#/components/schemas/AssetIdEither" + }, + "maxItems": 1000, + "minItems": 1 } } }, { - "type": "object", - "title": "not", - "required": [ - "not" - ], - "properties": { - "not": { - "title": "Filter DSL", - "description": "Sub-clauses in the query must not appear in matching items.", - "type": "object", - "allOf": [ - { - "$ref": "#/components/schemas/AssetAggregateFilter" - } - ] - } - } + "$ref": "#/components/schemas/IgnoreUnknownIdsField" + }, + { + "$ref": "#/components/schemas/AggregatedProperties" } ] }, - "AssetAdvancedFilter": { + "ExternalAsset": { "type": "object", + "required": [ + "name" + ], "properties": { - "advancedFilter": { - "type": "object", - "description": "A filter DSL (Domain Specific Language) to define advanced filter queries.\n\nSee more information about filtering DSL [here](https://docs.cognite.com/dev/concepts/resource_filtering_dsl/ \"filtering DSL\").\n\nSupported properties:\n\n | Property | Type |\n |---------------------------------|-----------------------------------------|\n | `[\"labels\"]` | array of [string] |\n | `[\"createdTime\"]` | number |\n | `[\"dataSetId\"]` | number |\n | `[\"id\"]` | number |\n | `[\"lastUpdatedTime\"]` | number |\n | `[\"parentId\"]` | number |\n | `[\"rootId\"]` | number |\n | `[\"description\"]` | string |\n | `[\"externalId\"]` | string |\n | `[\"metadata\"]` | string |\n | `[\"metadata\", \"someCustomKey\"]` | string |\n | `[\"name\"]` | string |\n | `[\"source\"]` | string |\n\n Note: Filtering on the `[\"metadata\"]` property has the following logic:\n If a value of any metadata keys in an asset matches the filter, the asset matches the filter.", - "oneOf": [ - { - "$ref": "#/components/schemas/AssetBoolFilter" - }, + "externalId": { + "$ref": "#/components/schemas/CogniteExternalId" + }, + "name": { + "$ref": "#/components/schemas/AssetName" + }, + "parentId": { + "description": "The parent node's ID used to specify parent-child relationship.\n\nYou should not use this field in combination with the parentExternalId field.\n", + "allOf": [ { - "$ref": "#/components/schemas/AssetLeafFilter" + "$ref": "#/components/schemas/CogniteInternalId" } - ], - "example": { - "or": [ - { - "not": { - "and": [ - { - "equals": { - "property": [ - "metadata", - "asset_type" - ], - "value": "gas pump" - } - }, - { - "in": { - "property": [ - "source" - ], - "values": [ - "blueprint", - "inventory" - ] - } - }, - { - "range": { - "property": [ - "dataSetId" - ], - "gte": 1, - "lt": 10 - } - } - ] - } - }, - { - "and": [ - { - "containsAny": { - "property": [ - "labels" - ], - "values": [ - "pump", - "cooler" - ] - } - }, - { - "equals": { - "property": [ - "parentId" - ], - "value": 95867294876 - } - } - ] - }, - { - "search": { - "property": [ - "description" - ], - "value": "My favorite pump" - } - } - ] - } - } - } - }, - "AssetLeafFilter": { - "description": "Leaf filter.", - "title": "LeafFilter", - "type": "object", - "oneOf": [ - { - "$ref": "#/components/schemas/EqualsFilter" + ] }, - { - "$ref": "#/components/schemas/InFilter" + "parentExternalId": { + "description": "The parent node's external ID used to specify the parent-child relationship.\nWhen specifying this field, the API will resolve the external ID into an internal ID and use the internal ID to store the parent-child relation.\nAs a result, a later change to update the parent's external ID will not affect this parent-child relationship as it is based on internal ID.\n\nYou should not use this field in combination with the parentId field.\n", + "allOf": [ + { + "$ref": "#/components/schemas/CogniteExternalId" + } + ] }, - { - "$ref": "#/components/schemas/GenericRangeFilter" + "description": { + "$ref": "#/components/schemas/AssetDescription" }, - { - "$ref": "#/components/schemas/PrefixFilter" + "dataSetId": { + "description": "The id of the dataset this asset belongs to.", + "allOf": [ + { + "$ref": "#/components/schemas/CogniteInternalId" + } + ] }, - { - "$ref": "#/components/schemas/ExistsFilter" + "metadata": { + "$ref": "#/components/schemas/AssetMetadata" }, - { - "$ref": "#/components/schemas/ContainsAnyFilter" + "source": { + "$ref": "#/components/schemas/AssetSource" }, - { - "$ref": "#/components/schemas/ContainsAllFilter" + "labels": { + "$ref": "#/components/schemas/LabelList" }, - { - "$ref": "#/components/schemas/SearchFilter" + "geoLocation": { + "$ref": "#/components/schemas/GeoLocation" } - ] - }, - "AssetBoolFilter": { - "description": "A query that matches items matching boolean combinations of other queries.\nIt is built using one or more boolean clauses of the following types: `and`, `or`, or `not`.", - "title": "BoolFilter", - "type": "object", - "oneOf": [ - { - "type": "object", - "title": "and", - "required": [ - "and" - ], - "properties": { - "and": { - "description": "All of the sub-clauses in the query must appear in matching items.", - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/AssetAdvancedFilter" - } - } - } - }, - { - "type": "object", - "title": "or", - "required": [ - "or" - ], - "properties": { - "or": { - "description": "At least one of the sub-clauses in the query must appear in matching items.", - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/AssetAdvancedFilter" - } - } - } - }, + }, + "description": "A representation of a physical asset, for example a factory or a piece of equipment." + }, + "Asset": { + "allOf": [ { "type": "object", - "title": "not", "required": [ - "not" + "rootId", + "createdTime", + "lastUpdatedTime" ], "properties": { - "not": { - "title": "Filter DSL", - "description": "Sub-clauses in the query must not appear in matching items.", - "type": "object", + "createdTime": { + "$ref": "#/components/schemas/EpochTimestamp" + }, + "lastUpdatedTime": { + "$ref": "#/components/schemas/EpochTimestamp" + }, + "rootId": { + "description": "The ID of the root asset. The root asset is the asset spanning the entire asset hierarchy that this asset belongs to.", "allOf": [ { - "$ref": "#/components/schemas/AssetAdvancedFilter" + "$ref": "#/components/schemas/CogniteInternalId" + } + ] + }, + "aggregates": { + "$ref": "#/components/schemas/AggregateResultItem" + }, + "parentId": { + "description": "The ID of the parent of this node, null if it is the root node.", + "allOf": [ + { + "$ref": "#/components/schemas/CogniteInternalId" + } + ] + }, + "parentExternalId": { + "description": "The external ID of the parent. The property is omitted if the asset doesn't have a parent or if the parent doesn't have externalId.", + "allOf": [ + { + "$ref": "#/components/schemas/CogniteExternalId" } ] } } - } - ] - }, - "AssetSearchFilter": { - "description": "Search request with filter capabilities.", - "example": { - "filter": { - "parentIds": [ - 1293812938, - 293823982938 - ] - }, - "search": { - "name": "flow", - "description": "upstream" - } - }, - "allOf": [ - { - "$ref": "#/components/schemas/AssetFilter" }, { - "$ref": "#/components/schemas/AssetLimit" + "$ref": "#/components/schemas/ExternalAsset" }, { - "$ref": "#/components/schemas/AssetSearch" + "$ref": "#/components/schemas/AssetInternalId" } ] }, - "AssetSearch": { + "AggregateResultItem": { + "description": "Aggregated metrics of the asset.", "type": "object", "properties": { - "search": { - "type": "object", - "title": "Search", - "description": "Fulltext search for assets. Primarily meant for for human-centric use-cases, not for programs. The query parameter uses a different search algorithm than the deprecated name and description parameters, and will generally give much better results.", - "properties": { - "name": { - "$ref": "#/components/schemas/AssetName" - }, - "description": { - "$ref": "#/components/schemas/AssetDescription" - }, - "query": { - "$ref": "#/components/schemas/AssetQuery" - } + "childCount": { + "type": "integer", + "description": "Number of direct descendants for the asset.", + "format": "int32", + "minimum": 0 + }, + "depth": { + "type": "integer", + "description": "Asset path depth (number of levels below root node).", + "format": "int32", + "minimum": 0 + }, + "path": { + "description": "IDs of assets on the path to the asset.", + "type": "array", + "items": { + "$ref": "#/components/schemas/AssetIdentifier" } } } }, - "AssetChange": { - "oneOf": [ - { - "$ref": "#/components/schemas/AssetChangeById" - }, - { - "$ref": "#/components/schemas/AssetChangeByExternalId" + "DataAsset": { + "type": "object", + "required": [ + "items" + ], + "properties": { + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Asset" + } } - ] + } }, - "AssetChangeById": { - "allOf": [ - { - "$ref": "#/components/schemas/AssetPatch" - }, - { - "type": "object", - "required": [ - "id" - ], - "properties": { - "id": { - "$ref": "#/components/schemas/CogniteInternalId" - } - } + "DataAssetChange": { + "type": "object", + "required": [ + "items" + ], + "properties": { + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AssetChange" + }, + "minItems": 1, + "maxItems": 1000 } - ] + } }, - "AssetChangeByExternalId": { + "DataExternalAssetItem": { "allOf": [ { - "$ref": "#/components/schemas/AssetPatch" + "$ref": "#/components/schemas/ExternalAsset" }, { "type": "object", - "required": [ - "externalId" - ], "properties": { - "externalId": { - "$ref": "#/components/schemas/CogniteExternalId" + "parentExternalId": { + "$ref": "#/components/schemas/AssetParentExternalId" } } } ] }, - "AssetPatch": { + "DataExternalAsset": { "type": "object", - "description": "Changes applied to asset", "required": [ - "update" + "items" ], "properties": { - "update": { + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DataExternalAssetItem" + }, + "minItems": 1, + "maxItems": 1000 + } + } + }, + "DataWithCursorAsset": { + "type": "object", + "required": [ + "items" + ], + "properties": { + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Asset" + } + }, + "nextCursor": { + "type": "string", + "description": "The cursor to get the next page of results (if available)." + } + }, + "description": "A list of objects along with possible cursors to get the next or previous page of results." + }, + "AggregatedProperty": { + "type": "string", + "enum": [ + "childCount", + "path", + "depth" + ] + }, + "AggregatedProperties": { + "type": "object", + "properties": { + "aggregatedProperties": { + "description": "Set of aggregated properties to include", + "type": "array", + "items": { + "$ref": "#/components/schemas/AggregatedProperty" + } + } + } + }, + "AssetFilter": { + "type": "object", + "properties": { + "filter": { "type": "object", + "description": "Filter on assets with strict matching.", + "title": "Filter", "properties": { - "externalId": { - "$ref": "#/components/schemas/SinglePatchExternalId" - }, "name": { - "$ref": "#/components/schemas/SinglePatchRequiredName" + "$ref": "#/components/schemas/AssetName" }, - "description": { - "$ref": "#/components/schemas/SinglePatchResourceDescription" + "parentIds": { + "description": "Return only the direct descendants of the specified assets.", + "type": "array", + "minItems": 1, + "maxItems": 100, + "items": { + "$ref": "#/components/schemas/CogniteInternalId" + } }, - "dataSetId": { - "$ref": "#/components/schemas/SinglePatchLong" + "parentExternalIds": { + "description": "Return only the direct descendants of the specified assets.", + "type": "array", + "minItems": 1, + "maxItems": 100, + "items": { + "$ref": "#/components/schemas/CogniteExternalId" + } + }, + "rootIds": { + "description": "This parameter is deprecated. Use `assetSubtreeIds` instead. Only include these root assets and their descendants.", + "deprecated": true, + "type": "array", + "minItems": 1, + "maxItems": 100, + "items": { + "$ref": "#/components/schemas/AssetIdEither" + } + }, + "assetSubtreeIds": { + "type": "array", + "minItems": 1, + "maxItems": 100, + "description": "Only include assets in subtrees rooted at the specified assets (including the roots given). If the total size of the given subtrees exceeds 100,000 assets, an error will be returned.", + "items": { + "$ref": "#/components/schemas/AssetIdEither" + } + }, + "dataSetIds": { + "type": "array", + "maxItems": 1000, + "items": { + "$ref": "#/components/schemas/DataSetIdEither" + } }, "metadata": { - "$ref": "#/components/schemas/ObjectPatchAsset" + "$ref": "#/components/schemas/AssetMetadata" }, "source": { - "$ref": "#/components/schemas/SinglePatchAssetSource" + "$ref": "#/components/schemas/AssetSource" }, - "parentId": { - "$ref": "#/components/schemas/SinglePatchRequiredInternalId" + "createdTime": { + "$ref": "#/components/schemas/EpochTimestampRange" }, - "parentExternalId": { - "$ref": "#/components/schemas/SinglePatchRequiredParentExternalId" + "lastUpdatedTime": { + "$ref": "#/components/schemas/EpochTimestampRange" + }, + "root": { + "type": "boolean", + "description": "Whether the filtered assets are root assets, or not. Set to True to only list root assets." + }, + "externalIdPrefix": { + "$ref": "#/components/schemas/CogniteExternalIdPrefix" }, "labels": { - "$ref": "#/components/schemas/LabelsPatch" + "$ref": "#/components/schemas/LabelFilter" }, "geoLocation": { - "$ref": "#/components/schemas/SinglePatchGeoLocation" + "$ref": "#/components/schemas/GeoLocationFilter" } } } } }, - "SinglePatchRequiredName": { - "title": "AssetName", + "AssetLimit": { "type": "object", "properties": { - "set": { - "$ref": "#/components/schemas/AssetName" - } - }, - "description": "Set a new value for the asset name.", - "required": [ - "set" - ] - }, - "SinglePatchAssetSource": { - "title": "Source", - "type": "object", - "oneOf": [ - { - "$ref": "#/components/schemas/SetAssetSource" - }, - { - "$ref": "#/components/schemas/RemoveField" + "limit": { + "description": "Limits the number of results to return.", + "type": "integer", + "format": "int32", + "minimum": 1, + "maximum": 1000, + "default": 100 } - ], - "description": "Set a new value for the source, or remove the value." + } }, - "SinglePatchRequiredInternalId": { + "AssetSort": { "type": "object", "properties": { - "set": { - "$ref": "#/components/schemas/CogniteInternalId" + "sort": { + "description": "Sort by array of selected properties.\n", + "type": "array", + "minItems": 1, + "maxItems": 2, + "items": { + "$ref": "#/components/schemas/AssetSortProperty" + }, + "example": [ + { + "property": [ + "createdTime" + ], + "order": "desc" + }, + { + "property": [ + "metadata", + "customMetadataKey" + ], + "nulls": "first" + } + ] } - }, - "description": "Change the ID of the object.", - "required": [ - "set" - ] + } }, - "SinglePatchRequiredExternalId": { + "AssetSortProperty": { "type": "object", - "properties": { - "set": { - "$ref": "#/components/schemas/CogniteExternalId" - } - }, - "description": "Change the external ID of the object.", "required": [ - "set" - ] - }, - "SinglePatchRequiredParentExternalId": { - "type": "object", + "property" + ], "properties": { - "set": { - "$ref": "#/components/schemas/AssetParentExternalId" + "property": { + "type": "array", + "description": "Property to sort on.\nSorting can be done on the following properties:\n | Property |\n |---------------------------------|\n | `[\"createdTime\"]` |\n | `[\"dataSetId\"]` |\n | `[\"description\"]` |\n | `[\"externalId\"]` |\n | `[\"lastUpdatedTime\"]` |\n | `[\"metadata\", \"someCustomKey\"]` |\n | `[\"name\"]` |\n | `[\"source\"]` |\n | `[\"_score_\"]` |", + "minItems": 1, + "maxItems": 2, + "items": { + "type": "string" + } + }, + "order": { + "type": "string", + "description": "The `order` attribute is optional and defaults to `desc` for `_score_` and `asc` for all other properties.", + "enum": [ + "asc", + "desc" + ] + }, + "nulls": { + "type": "string", + "description": "The `nulls` attribute is optional and defaults to `auto`.\n`auto` is translated to `last` for the `asc` order and to `first` for the `desc` order by the service.", + "enum": [ + "first", + "last", + "auto" + ], + "default": "auto" } - }, - "description": "Change the external ID of the object.", - "required": [ - "set" - ] + } }, - "NodeOrEdge": { + "AssetAggregateRequest": { + "description": "Aggregation request of assets. Filters behave the same way as for the `filter` endpoint. Default aggregation is `count`.", "oneOf": [ { - "$ref": "#/components/schemas/NodeDefinition" + "$ref": "#/components/schemas/AssetCountAggregate" }, { - "$ref": "#/components/schemas/EdgeDefinition" + "$ref": "#/components/schemas/AssetWithPropertyCountAggregate" + }, + { + "$ref": "#/components/schemas/AssetCardinalityValuesAggregate" + }, + { + "$ref": "#/components/schemas/AssetCardinalityPropertiesAggregate" + }, + { + "$ref": "#/components/schemas/AssetUniqueValuesAggregate" + }, + { + "$ref": "#/components/schemas/AssetUniquePropertiesAggregate" + }, + { + "$ref": "#/components/schemas/AssetMetadataKeysAggregate" + }, + { + "$ref": "#/components/schemas/AssetMetadataValuesAggregate" } ] }, - "SlimNodeOrEdge": { - "oneOf": [ + "AssetCardinalityValuesAggregate": { + "allOf": [ { - "$ref": "#/components/schemas/SlimNodeDefinition" + "type": "object", + "title": "ApproximateCardinalityForValues", + "description": "Request values approximate cardinality aggregate on a specific property.", + "required": [ + "aggregate" + ], + "properties": { + "aggregate": { + "description": "Type of aggregation to apply.\n`cardinalityValues`: Get approximate number of unique values for the specified property.\n", + "type": "string", + "enum": [ + "cardinalityValues" + ] + }, + "aggregateFilter": { + "$ref": "#/components/schemas/AssetAggregateFilter" + } + } }, { - "$ref": "#/components/schemas/SlimEdgeDefinition" + "$ref": "#/components/schemas/AssetAdvancedFilter" + }, + { + "$ref": "#/components/schemas/AssetFilter" + }, + { + "$ref": "#/components/schemas/AssetAggregateProperties" } ] }, - "ViewPropertyReference": { - "type": "object", - "required": [ - "view", - "identifier" - ], - "deprecated": true, - "properties": { - "view": { - "description": "Reference to a view - this is deprecated, use `source` with ViewReference instead", - "allOf": [ - { - "$ref": "#/components/schemas/ViewReference" - } - ] - }, - "identifier": { - "description": "The unique identifier, from the view, for the property", - "allOf": [ - { - "$ref": "#/components/schemas/PropertyIdentifierV3" - } - ] - } - } - }, - "ThroughReference": { - "type": "object", - "required": [ - "source", - "identifier" - ], - "properties": { - "source": { - "$ref": "#/components/schemas/SourceReference" - }, - "identifier": { - "$ref": "#/components/schemas/PropertyIdentifierV3" - } - } - }, - "ViewReference": { - "type": "object", - "description": "Reference to a view", - "required": [ - "type", - "space", - "externalId", - "version" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "view" - ] - }, - "space": { - "description": "Id of the space that the view belongs to", - "allOf": [ - { - "$ref": "#/components/schemas/SpaceSpecification" - } - ] - }, - "externalId": { - "description": "External-id of the view", - "allOf": [ - { - "$ref": "#/components/schemas/DMSExternalId" - } - ] - }, - "version": { - "description": "Version of the view", - "allOf": [ - { - "$ref": "#/components/schemas/DMSVersion" - } - ] - } - } - }, - "DataModelReference": { - "type": "object", - "description": "Data model reference", - "required": [ - "space", - "externalId", - "version" - ], - "properties": { - "space": { - "description": "Id of the space that the data model belongs to", - "allOf": [ - { - "$ref": "#/components/schemas/SpaceSpecification" - } - ] - }, - "externalId": { - "description": "External-id of the data model", - "allOf": [ - { - "$ref": "#/components/schemas/DMSExternalId" - } - ] - }, - "version": { - "description": "Version of the data model", - "allOf": [ - { - "$ref": "#/components/schemas/DMSVersion" - } - ] - } - } - }, - "CreateViewProperty": { - "type": "object", - "required": [ - "container", - "containerPropertyIdentifier" - ], - "properties": { - "name": { - "type": "string", - "description": "Readable property name.", - "maxLength": 255 - }, - "description": { - "type": "string", - "description": "Description of the content and suggested use for this property.", - "maxLength": 1024 - }, - "container": { - "$ref": "#/components/schemas/ContainerReference" - }, - "containerPropertyIdentifier": { - "description": "The unique identifier for the property (Unique within the referenced container).", - "allOf": [ - { - "$ref": "#/components/schemas/PropertyIdentifierV3" + "AssetCardinalityPropertiesAggregate": { + "allOf": [ + { + "type": "object", + "title": "ApproximateCardinalityForProperties", + "description": "Request resource properties approximate cardinality aggregate.", + "required": [ + "aggregate" + ], + "properties": { + "aggregate": { + "description": "Type of aggregation to apply.\n`cardinalityProperties`: Get approximate number of unique properties.\n", + "type": "string", + "enum": [ + "cardinalityProperties" + ] + }, + "aggregateFilter": { + "$ref": "#/components/schemas/AssetAggregateFilter" } - ] + } }, - "source": { - "description": "Indicates on what type a referenced direct relation is expected to be (although not required). Only applicable for direct relation properties.", - "allOf": [ - { - "$ref": "#/components/schemas/ViewReference" - } - ] - } - } - }, - "ContainerReference": { - "type": "object", - "description": "Reference to an existing container", - "required": [ - "type", - "space", - "externalId" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "container" - ] + { + "$ref": "#/components/schemas/AssetAdvancedFilter" }, - "space": { - "description": "Id of the space hosting (containing) the container", - "allOf": [ - { - "$ref": "#/components/schemas/SpaceSpecification" - } - ] + { + "$ref": "#/components/schemas/AssetFilter" }, - "externalId": { - "description": "External-id of the container", - "allOf": [ - { - "$ref": "#/components/schemas/DMSExternalId" + { + "properties": { + "path": { + "description": "The scope in every document to aggregate properties.\nThe only value allowed now is [\"metadata\"].\nIt means to aggregate only metadata properties (aka keys).\n", + "type": "array", + "minItems": 1, + "maxItems": 1, + "items": { + "type": "string", + "enum": [ + "metadata" + ] + }, + "default": [ + "metadata" + ] } - ] + } } - } + ] }, - "DataModelCore": { - "type": "object", - "required": [ - "space", - "externalId", - "version" - ], - "properties": { - "space": { - "description": "Id of the space that the data model belongs to", - "allOf": [ - { - "$ref": "#/components/schemas/SpaceSpecification" - } - ] - }, - "externalId": { - "description": "External id that uniquely identifies this data model", - "allOf": [ - { - "$ref": "#/components/schemas/DMSExternalId" + "AssetUniqueValuesAggregate": { + "allOf": [ + { + "type": "object", + "title": "UniqueValues", + "description": "Request unique value buckets aggregate on a specific Asset property.\nEach bucket is defined by the `values` array and has the number of the `values` occurrences.", + "required": [ + "aggregate" + ], + "properties": { + "aggregate": { + "description": "Type of aggregation to apply.\n`uniqueValues`: Get unique values (up to max 1000) in the specified property ordered by the frequency.\nNote: When aggregate on the `[\"metadata\"]` property, a value may occur multiple times in one Asset for different metadata keys.\nEach occurrence is counted.\n", + "type": "string", + "enum": [ + "uniqueValues" + ] + }, + "aggregateFilter": { + "$ref": "#/components/schemas/AssetAggregateFilter" } - ] + } }, - "name": { - "type": "string", - "description": "Readable name meant for use in UIs", - "maxLength": 255 + { + "$ref": "#/components/schemas/AssetAdvancedFilter" }, - "description": { - "type": "string", - "description": "Description of the content and intended use of the data model", - "maxLength": 1024 + { + "$ref": "#/components/schemas/AssetFilter" }, - "version": { - "description": "Data model version (opaque string controlled by client applications)", - "allOf": [ - { - "$ref": "#/components/schemas/DMSVersion" - } - ] + { + "$ref": "#/components/schemas/AssetAggregateProperties" } - } + ] }, - "DataModel": { + "AssetUniquePropertiesAggregate": { "allOf": [ - { - "$ref": "#/components/schemas/DataModelCore" - }, { "type": "object", + "title": "UniqueProperties", + "description": "Request unique non-null property buckets aggregate.", "required": [ - "createdTime", - "lastUpdatedTime", - "isGlobal" + "aggregate" ], "properties": { - "views": { - "type": "array", - "description": "List of views included in this data model. We can expand the views to use the full view definitions, \ni.e. with all the dependent views. \n\nUse the ```InlineViews``` query parameter to request expansion. If you do not set the \n```InlineViews``` query parameter, we will return the references to views instead.\n", - "items": { - "$ref": "#/components/schemas/DataModelProperty" - } - }, - "createdTime": { - "$ref": "#/components/schemas/EpochTimestamp" - }, - "lastUpdatedTime": { - "$ref": "#/components/schemas/EpochTimestamp" + "aggregate": { + "description": "Type of aggregation to apply.\n`uniqueProperties`: Get unique properties (up to max 1000) in the specified document path (default path is [\"metadata\"] - metadata keys only).\nOrdered by frequency.\n", + "type": "string", + "enum": [ + "uniqueProperties" + ] }, - "isGlobal": { - "description": "Is this a global data model.", - "type": "boolean" + "aggregateFilter": { + "$ref": "#/components/schemas/AssetAggregateFilter" } } - } - ] - }, - "DataModelProperty": { - "anyOf": [ - { - "$ref": "#/components/schemas/ViewReference" }, { - "$ref": "#/components/schemas/ViewDefinition" - } - ] - }, - "DataModelCreate": { - "allOf": [ + "$ref": "#/components/schemas/AssetAdvancedFilter" + }, { - "$ref": "#/components/schemas/DataModelCore" + "$ref": "#/components/schemas/AssetFilter" }, { - "type": "object", "properties": { - "views": { + "path": { + "description": "The scope in every document to aggregate properties.\nThe only value allowed now is [\"metadata\"].\nIt means to aggregate only metadata properties (aka keys).\n", "type": "array", - "description": "List of views included in this data model. You can use a reference to an existing view to specify the new view. Or you can create a new view/update an existing view by including an existing view specification.", + "minItems": 1, + "maxItems": 1, "items": { - "$ref": "#/components/schemas/DataModelCreateProperty" - } + "type": "string", + "enum": [ + "metadata" + ] + }, + "default": [ + "metadata" + ] } } } ] }, - "DataModelCreateProperty": { - "anyOf": [ + "AssetCountAggregate": { + "allOf": [ { - "$ref": "#/components/schemas/ViewReference" + "type": "object", + "title": "AssetCount", + "description": "Request aggregate to count number of Assets matching the filters. Default aggregate for the endpoint.", + "properties": { + "aggregate": { + "description": "Type of aggregation to apply.\n`count`: Get approximate number of Assets matching the filters.\n", + "type": "string", + "enum": [ + "count" + ] + } + } }, { - "$ref": "#/components/schemas/ViewCreateDefinition" + "$ref": "#/components/schemas/AssetAdvancedFilter" + }, + { + "$ref": "#/components/schemas/AssetFilter" } ] }, - "ViewCreateDefinition": { + "AssetWithPropertyCountAggregate": { "allOf": [ { "type": "object", - "required": [ - "externalId" - ], + "title": "AssetWithPropertyCount", + "description": "Request aggregate to count the number of Assets with the specific property (property is not null)\nand matching the filters.", "properties": { - "externalId": { - "description": "External id uniquely identifying this view. The values ```Query```, ```Mutation```, ```Subscription```, ```String```, ```Int32```, ```Int64```, ```Int```, ```Float32```, ```Float64```, ```Float```, ```Timestamp```, ```JSONObject```, ```Date```, ```Numeric```, ```Boolean```, ```PageInfo```, ```File```, ```Sequence``` and ```TimeSeries``` are reserved.", - "allOf": [ - { - "$ref": "#/components/schemas/DMSExternalId" - } + "aggregate": { + "description": "Type of aggregation to apply.\n`count`: Get an approximate number of Assets with the specific property (property is not null) and matching the filters.\n", + "type": "string", + "enum": [ + "count" ] } } }, { - "$ref": "#/components/schemas/ViewCommon" + "$ref": "#/components/schemas/AssetAdvancedFilter" }, { - "type": "object", - "properties": { - "properties": { - "type": "object", - "description": "View with included properties and expected edges, indexed by a unique space-local identifier. The view identifier has to have a length of between 1 and 255 characters. It must also match the pattern ```^[a-zA-Z0-9][a-zA-Z0-9_-]{0,253}[a-zA-Z0-9]?$```, and it cannot be any of the following reserved identifiers: ```space```, ```externalId```, ```createdTime```, ```lastUpdatedTime```, ```deletedTime```, ```edge_id```, ```node_id```, ```project_id```, ```property_group```, ```seq```, ```tg_table_name```, and ```extensions```. The maximum number of properties depends on the project subscription and is by default 100.", - "additionalProperties": { - "x-additionalPropertiesName": "property-identifier", - "allOf": [ - { - "$ref": "#/components/schemas/ViewCreateDefinitionProperty" - } - ] - } - } - } - } - ] - }, - "ViewCreateDefinitionProperty": { - "description": "A reference to a container property (ViewProperty) or a connection describing edges that are expected to\nexist (ConnectionDefinition).\n\nIf the referenced container property is a direct relation, a view of the node can be specified. The view is\na hint to the consumer on what type of data is expected to be of interest in the context of this view.\n\nA connection describes the edges that are likely to exist to aid in discovery and documentation of the view. \nA listed edge is not required. i.e. It does not have to exist when included in this list. The target nodes of\nthis connection will match the view specified in the source property. A connection has a max distance of one hop\nin the underlying graph.\n", - "oneOf": [ - { - "$ref": "#/components/schemas/CreateViewProperty" + "$ref": "#/components/schemas/AssetFilter" }, { - "$ref": "#/components/schemas/ConnectionDefinition" + "$ref": "#/components/schemas/AssetAggregateProperties" } ] }, - "ViewDefinition": { + "AssetMetadataKeysAggregate": { + "deprecated": true, "allOf": [ { "type": "object", + "title": "MetadataKeys", + "description": "Get unique values (up to max 1000) of metadata keys ordered by frequency.", "required": [ - "externalId" + "aggregate" ], "properties": { - "externalId": { - "description": "External id uniquely identifying this view", - "allOf": [ - { - "$ref": "#/components/schemas/DMSExternalId" - } + "aggregate": { + "description": "Type of aggregation to apply.\n`metadataKeys`: Get unique values of metadata keys ordered by frequency.\n", + "type": "string", + "enum": [ + "metadataKeys" ] } } }, { - "$ref": "#/components/schemas/ViewCommon" + "$ref": "#/components/schemas/AssetAdvancedFilter" }, + { + "$ref": "#/components/schemas/AssetFilter" + } + ] + }, + "AssetMetadataValuesAggregate": { + "deprecated": true, + "allOf": [ { "type": "object", + "title": "MetadataValues", + "description": "Get unique values (up to max 1000) of values for a particular metadata key, ordered by frequency.", "required": [ - "createdTime", - "lastUpdatedTime", - "writable", - "properties", - "usedFor", - "isGlobal" + "aggregate", + "keys" ], "properties": { - "createdTime": { - "$ref": "#/components/schemas/EpochTimestamp" - }, - "lastUpdatedTime": { - "$ref": "#/components/schemas/EpochTimestamp" - }, - "writable": { - "type": "boolean", - "description": "Does the view support write operations, i.e. is it ```writable```? You can write to a view if the view maps all non-nullable properties." - }, - "usedFor": { - "$ref": "#/components/schemas/UsedFor" - }, - "isGlobal": { - "type": "boolean", - "description": "Is this a global view." - }, - "properties": { - "type": "object", - "description": "List of properties and connections included in this view. The view identifier has to have a length of between 1 and 255 characters. It must also match the pattern ```^[a-zA-Z0-9][a-zA-Z0-9_-]{0,253}[a-zA-Z0-9]?$```.", - "additionalProperties": { - "x-additionalPropertiesName": "view-property-identifier", - "allOf": [ - { - "$ref": "#/components/schemas/ViewDefinitionProperty" - } - ] - } + "aggregate": { + "description": "Type of aggregation to apply.\n`metadataValues`: Get unique values of values for a particular metadata key, ordered by frequency.\n", + "type": "string", + "enum": [ + "metadataValues" + ] } } - } - ] - }, - "ViewDefinitionProperty": { - "oneOf": [ + }, { - "$ref": "#/components/schemas/ViewPropertyDefinition" + "$ref": "#/components/schemas/AssetAdvancedFilter" }, { - "$ref": "#/components/schemas/ConnectionDefinition" + "$ref": "#/components/schemas/AssetFilter" + }, + { + "$ref": "#/components/schemas/AssetAggregateKeys" } ] }, - "ViewCommon": { + "AssetAggregateProperties": { "type": "object", "required": [ - "space", - "version" + "properties" ], "properties": { - "space": { - "description": "Id of the space that the view belongs to", - "allOf": [ - { - "$ref": "#/components/schemas/SpaceSpecification" - } - ] - }, - "name": { - "type": "string", - "description": "Readable name, meant for use in UIs", - "maxLength": 255 - }, - "description": { - "type": "string", - "description": "Description. Intended to describe the content, and use, of this view.", - "maxLength": 1024 - }, - "filter": { - "$ref": "#/components/schemas/FilterDefinition" - }, - "implements": { + "properties": { "type": "array", - "description": "References to the views from where this view will inherit properties and edges.\n\n\nNote: The order you list the views in is significant. We use this order to deduce the priority when we encounter duplicate property references.\n\n\nIf you do not specify a view version, we will use the most recent version available at the time of creation. ", + "description": "The property name(s) to apply the aggregation on. Currently limited to one property per request.", + "minItems": 1, + "maxItems": 1, "items": { - "$ref": "#/components/schemas/ViewReference" - } - }, - "version": { - "$ref": "#/components/schemas/DMSVersion" - } - } - }, - "ConnectionDefinition": { - "oneOf": [ - { - "$ref": "#/components/schemas/EdgeConnection" - }, - { - "$ref": "#/components/schemas/ReverseDirectRelationConnection" - } - ] - }, - "EdgeConnection": { - "type": "object", - "required": [ - "type", - "source" - ], - "description": "Describes the edge(s) that are likely to exist to aid in discovery and documentation of the view. A listed edge is not required. i.e. It does not have to exist when included in this list. A connection has a max distance of one hop.", - "properties": { - "connectionType": { - "type": "string", - "description": "The type of connection, either a single or multi edge connections are expected to exist.", - "enum": [ - "single_edge_connection", - "multi_edge_connection" - ], - "default": "multi_edge_connection" - }, - "name": { - "type": "string", - "description": "Readable property name.", - "maxLength": 255 - }, - "description": { - "type": "string", - "description": "Description of the content and suggested use for this property.", - "maxLength": 1024 - }, - "type": { - "$ref": "#/components/schemas/DirectRelationReference" - }, - "source": { - "description": "The target node(s) of this connection can be read through the view specified in 'source'.", - "allOf": [ - { - "$ref": "#/components/schemas/ViewReference" - } - ] - }, - "edgeSource": { - "description": "The edge(s) of this connection can be read through the view specified in 'edgeSource'.", - "allOf": [ - { - "$ref": "#/components/schemas/ViewReference" + "type": "object", + "required": [ + "property" + ], + "properties": { + "property": { + "type": "array", + "description": "It's an array of strings to allow specifying nested properties.\n Supported properties:\\\n | Property | Type |\n |---------------------------------|------------------------------|\n | `[\"dataSetId\"]` | number |\n | `[\"description\"]` | string |\n | `[\"labels\"]` | array of [string] |\n | `[\"name\"]` | string |\n | `[\"parentId\"]` | number |\n | `[\"rootId\"]` | number |\n | `[\"source\"]` | string |\n | `[\"metadata\"]` | string |\n | `[\"metadata\", ]` | string |", + "minItems": 1, + "maxItems": 2, + "items": { + "type": "string", + "minLength": 1, + "maxLength": 128 + }, + "example": [ + "parentId" + ] + }, + "filter": { + "$ref": "#/components/schemas/AssetAggregateFilter" + } } - ] - }, - "direction": { - "type": "string", - "enum": [ - "outwards", - "inwards" - ], - "default": "outwards" + } } } }, - "ReverseDirectRelationConnection": { + "AssetAggregateKeys": { "type": "object", - "required": [ - "connectionType", - "source", - "through" - ], - "description": "Describes the direct relation(s) pointing to instances read through this view. This connection type is used to aid in discovery and documentation of the view.", "properties": { - "connectionType": { - "type": "string", - "description": "The type of connection. The ```single_reverse_direct_relation``` type is used to indicate that only a single direct relation is expected to exist. The ```multi_reverse_direct_relation``` type is used to indicate that multiple direct relations are expected to exist.", - "enum": [ - "single_reverse_direct_relation", - "multi_reverse_direct_relation" - ] - }, - "name": { - "type": "string", - "description": "Readable property name.", - "maxLength": 255 - }, - "description": { - "type": "string", - "description": "Description of the content and suggested use for this property.", - "maxLength": 1024 - }, - "source": { - "description": "The node(s) containing the direct relation property can be read through the view specified in 'source'.", - "allOf": [ - { - "$ref": "#/components/schemas/ViewReference" - } - ] - }, - "through": { - "description": "The view or container of the node containing the direct relation property.", - "allOf": [ - { - "$ref": "#/components/schemas/ThroughReference" - } - ] + "keys": { + "description": "For `metadataValues`, `aggregateType` sets the metadata key(s) to apply the aggregation on. Currently supports exactly one key per request.\n", + "type": "array", + "maxItems": 1, + "items": { + "type": "string" + } } } }, - "ContainerDefinition": { - "required": [ - "space", - "externalId", - "properties", - "usedFor", - "createdTime", - "lastUpdatedTime", - "isGlobal" - ], + "AssetListScope": { "allOf": [ { - "$ref": "#/components/schemas/ContainerCreateDefinition" + "$ref": "#/components/schemas/AssetFilter" }, { - "type": "object", - "properties": { - "createdTime": { - "$ref": "#/components/schemas/EpochTimestamp" - }, - "lastUpdatedTime": { - "$ref": "#/components/schemas/EpochTimestamp" - }, - "isGlobal": { - "type": "boolean", - "description": "Is this a global container." - } - } - } - ] - }, - "ContainerCreateDefinition": { - "type": "object", - "description": "Container for properties you can access through views. Container specifications give details about storage related details. For instance, how to index the data, and what constraints should be present. You can define a single container to only contain nodes (```node```), only contain edges (```edge```), or to contain both (```all```).", - "required": [ - "space", - "externalId", - "properties" - ], - "properties": { - "space": { - "description": "Id of the space the container belongs to", - "allOf": [ - { - "$ref": "#/components/schemas/SpaceSpecification" - } - ] - }, - "externalId": { - "description": "External-id of the container. The values ```Query```, ```Mutation```, ```Subscription```, ```String```, ```Int32```, ```Int64```, ```Int```, ```Float32```, ```Float64```, ```Float```, ```Timestamp```, ```JSONObject```, ```Date```, ```Numeric```, ```Boolean```, ```PageInfo```, ```File```, ```Sequence``` and ```TimeSeries``` are reserved.", - "allOf": [ - { - "$ref": "#/components/schemas/DMSExternalId" - } - ] - }, - "name": { - "type": "string", - "description": "Readable name for container meant for use in UIs", - "maxLength": 255 + "$ref": "#/components/schemas/AssetAdvancedFilter" }, - "description": { - "type": "string", - "description": "Description of what the property contains, and how you intend to use it.", - "maxLength": 1024 + { + "$ref": "#/components/schemas/AssetLimit" }, - "usedFor": { - "$ref": "#/components/schemas/UsedFor" + { + "$ref": "#/components/schemas/AssetSort" }, - "properties": { - "type": "object", - "description": "We index the property by a local unique identifier. The identifier has to have a length of between 1 and 255 characters. It must also match the pattern ```^[a-zA-Z0-9][a-zA-Z0-9_-]{0,253}[a-zA-Z0-9]?$``` , and it cannot be any of the following reserved identifiers: ```space```, ```externalId```, ```createdTime```, ```lastUpdatedTime```, ```deletedTime```, ```edge_id```, ```node_id```, ```project_id```, ```property_group```, ```seq```, ```tg_table_name```, and ```extensions```. The maximum number of properties depends on the project subscription and is by default 100.", - "minProperties": 1, - "additionalProperties": { - "x-additionalPropertiesName": "containerPropertyIdentifier", - "allOf": [ - { - "$ref": "#/components/schemas/ContainerPropertyDefinition" - } - ] - } + { + "$ref": "#/components/schemas/Cursor" }, - "constraints": { - "type": "object", - "description": "Set of constraints to apply to the container", - "additionalProperties": { - "x-additionalPropertiesName": "constraint-identifier", - "allOf": [ - { - "$ref": "#/components/schemas/ConstraintDefinition" - } - ] - } + { + "$ref": "#/components/schemas/AggregatedProperties" }, - "indexes": { - "type": "object", - "description": "Set of indexes to apply to the container. Up to 10 indexes can be added on a container.", - "additionalProperties": { - "x-additionalPropertiesName": "index-identifier", - "allOf": [ - { - "$ref": "#/components/schemas/IndexDefinition" - } - ] - } + { + "$ref": "#/components/schemas/PartitionObjectLimited10" } - } + ] }, - "ConstraintDefinition": { + "AssetAggregateFilter": { "type": "object", - "description": "Defines a constraint across the properties you include.\n\n\nYou can use constraints to enforce that;\n * Certain properties must be present,\n * A value must be unique across a single or several properties.\n\nA 'uniqueness' constraint can only apply to properties that are in the same container. Up to 10 'uniqueness' constraints can be added per container. \n\n\nA 'requires' constraint can reference other containers. As a result, the properties in those other containers must then also be set. Up to 25 'requires' constraints can be added per container. ", + "description": "A filter DSL (Domain Specific Language) to define aggregate filter queries.\n\nSee more information about filtering DSL [here](https://docs.cognite.com/dev/concepts/resource_filtering_dsl/ \"filtering DSL\").\n", "oneOf": [ { - "$ref": "#/components/schemas/RequiresConstraintDefinition" + "$ref": "#/components/schemas/AssetAggregateBoolFilter" }, { - "$ref": "#/components/schemas/UniquenessConstraintDefinition" + "$ref": "#/components/schemas/AssetAggregateLeafFilter" } - ] - }, - "UniquenessConstraintDefinition": { - "type": "object", - "required": [ - "properties" ], - "properties": { - "constraintType": { - "type": "string", - "enum": [ - "uniqueness" - ], - "default": "uniqueness" - }, - "properties": { - "type": "array", - "description": "List of properties included in the constraint. The order you list the properties in is significant.", - "items": { - "type": "string" + "example": { + "or": [ + { + "not": { + "and": [ + { + "equals": { + "value": 10 + } + }, + { + "in": { + "values": [ + 11, + 12 + ] + } + }, + { + "range": { + "gte": 13, + "lt": 15 + } + } + ] + } + }, + { + "and": [ + { + "equals": { + "value": 42 + } + } + ] } - } - } - }, - "RequiresConstraintDefinition": { - "type": "object", - "required": [ - "require" - ], - "properties": { - "constraintType": { - "type": "string", - "enum": [ - "requires" - ], - "default": "requires" - }, - "require": { - "$ref": "#/components/schemas/ContainerReference" - } + ] } }, - "IndexDefinition": { + "AssetAggregateLeafFilter": { + "description": "Aggregate leaf filter.", + "title": "AggregateLeafFilter", "type": "object", - "description": "You can optimize query performance by defining an index to apply to a container. You can only create an index across properties belonging to the same container.\n\n\nOrdering of the properties included in the index definition list is significant. The order should match the queries you expect. Once we create an index, you may only change its description. We do not currently support removal of an index.\n\n\nIndexes have different requirements for the different property data types. As a result, the create index operation will fail if you specify an invalid combination.\n\n\nUp to 10 indexes can be added on a container.' ", "oneOf": [ { - "$ref": "#/components/schemas/BtreeIndex" + "$ref": "#/components/schemas/AggregateInFilter" }, { - "$ref": "#/components/schemas/InvertedIndex" + "$ref": "#/components/schemas/AggregatePrefixFilter" + }, + { + "$ref": "#/components/schemas/AggregateRangeFilter" } ] }, - "BtreeIndex": { + "AssetAggregateBoolFilter": { + "description": "A query that matches items matching boolean combinations of other queries.\nIt's built using one or more boolean clauses of the following types: `and`, `or`, or `not`.\n", + "title": "AggregateBoolFilter", "type": "object", - "required": [ - "properties" - ], - "properties": { - "properties": { - "type": "array", - "description": "List of properties to define the index across", - "items": { - "type": "string" - } - }, - "indexType": { - "type": "string", - "enum": [ - "btree" + "oneOf": [ + { + "type": "object", + "title": "and", + "required": [ + "and" ], - "default": "btree", - "description": "The B-tree index supports the following operations;\n\n * less than,\n * less than or equal,\n * equality (is equal),\n * larger than or equal, and\n * larger than.\n\n\nBy enabling the index to be cursorable, you can use it to efficiently query with custom sort options, and queries will emit cursors that can be used to paginate through the results. " - }, - "cursorable": { - "type": "boolean", - "description": "Whether the index can be used for cursor-based pagination", - "default": false - } - } - }, - "InvertedIndex": { - "type": "object", - "required": [ - "properties" - ], - "properties": { - "properties": { - "type": "array", - "description": "List of properties to define the index across", - "items": { - "type": "string" + "properties": { + "and": { + "description": "All of the sub-clauses in the query must appear in matching items.", + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/AssetAggregateFilter" + } + } } }, - "indexType": { - "type": "string", - "enum": [ - "inverted" - ], - "default": "inverted", - "description": "An inverted index can be used to index composite values, and the queries to be handled by the index need to search for element values that appear within the composite items. So if for example you have a property X of type `int[]` and you want to efficiently query for all instances where X contains some value Y, you can create an inverted index on X. " - } - } - }, - "ViewPropertyDefinition": { - "description": "Property definition", - "allOf": [ - { - "$ref": "#/components/schemas/ViewCorePropertyDefinition" - }, { "type": "object", + "title": "or", "required": [ - "container", - "containerPropertyIdentifier" + "or" ], "properties": { - "name": { - "type": "string", - "description": "Readable property name.", - "maxLength": 255 - }, - "description": { - "type": "string", - "description": "Description of the content and suggested use for this property.", - "maxLength": 1024 - }, - "container": { - "$ref": "#/components/schemas/ContainerReference" - }, - "containerPropertyIdentifier": { - "description": "The unique identifier for the mapped property in the referenced container.", - "allOf": [ - { - "$ref": "#/components/schemas/DMSExternalId" - } - ] + "or": { + "description": "At least one of the sub-clauses in the query must appear in matching items.", + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/AssetAggregateFilter" + } } } - } - ] - }, - "ContainerPropertyDefinition": { - "description": "Defines a property of a container. You can reference this property in views.", - "allOf": [ - { - "$ref": "#/components/schemas/ContainerCorePropertyDefinition" - } - ] - }, - "TypePropertyDefinition": { - "description": "Describes the type and configuration of a property included in the result.", - "allOf": [ - { - "$ref": "#/components/schemas/ViewCorePropertyDefinition" - } - ] - }, - "ViewCorePropertyDefinition": { - "allOf": [ - { - "$ref": "#/components/schemas/CorePropertyDefinition" }, { "type": "object", + "title": "not", "required": [ - "type" + "not" ], "properties": { - "type": { - "description": "The data-type to use when storing the property. Supported storage types are;\n\n\n* single value,\n * lists of text (allows user control of collation),\n * boolean,\n * 32-bit, and 64-bit floats,\n * 32-bit, and 64-bit integers,\n * timestamps,\n * dates,\n * JSON fragments,\n * time series external-id reference,\n * file external-id reference,\n * sequence external-id reference\n * direct relation to an existing node.\n\n\nThe JSON fragments have to be valid JSON objects. If JSON arrays are to be stored, these must be wrapped in a JSON object. JSON values (such as string, number, boolean) should use their respective primitive form instead. The maximum allowed size for a JSON object is 40960 bytes. For lists of json values, the size of the entire list must be within this limit. The maximum allowed length of a key is 128, while the maximum allowed size of a value is 10240 bytes and you can have up to 256 key-value pairs. The byte sizes are computed by representing the data as a UTF-8 encoded JSON string.\nDirect relations use a space external-id, the external-id for an existing node, and the external-id for the data container. E.g. ```s-spaceExternalId.uniqueNodeExternalId.containerExternalId```. The ```view``` property on direct relation can optionally be set, and if it is set then this is a hint to the client on what kind of data is expected to exist.\nTimestamps must be a string in the format 'YYYY-MM-DDTHH:MM:SS[.millis][Z|time zone]' with optional milliseconds having precision of 1-3 decimal digits and optional timezone with format ±HH:MM, ±HHMM, ±HH or Z, where Z represents UTC, Year must be between 0001 and 9999.\nDates must be a date string in the format 'YYYY-MM-DD'. Year must be between 1 and 9999. ", - "oneOf": [ - { - "$ref": "#/components/schemas/TextProperty" - }, - { - "$ref": "#/components/schemas/PrimitiveProperty" - }, - { - "$ref": "#/components/schemas/CDFExternalIdReference" - }, + "not": { + "title": "Filter DSL", + "description": "Sub-clauses in the query must not appear in matching items.", + "type": "object", + "allOf": [ { - "$ref": "#/components/schemas/ViewDirectNodeRelation" + "$ref": "#/components/schemas/AssetAggregateFilter" } ] } @@ -25126,305 +25502,462 @@ } ] }, - "ContainerCorePropertyDefinition": { - "allOf": [ - { - "$ref": "#/components/schemas/CorePropertyDefinition" - }, - { - "type": "object", - "required": [ - "type" - ], - "properties": { - "type": { - "description": "The data-type to use when storing the property. Supported storage types are;\n\n\n* single value,\n * lists of text (allows user control of collation),\n * boolean,\n * 32-bit, and 64-bit floats,\n * 32-bit, and 64-bit integers,\n * timestamps,\n * dates,\n * JSON fragments,\n * time series external-id reference,\n * file external-id reference,\n * sequence external-id reference\n * direct relation to an existing node.\n\n\nThe JSON fragments have to be valid JSON objects. If JSON arrays are to be stored, these must be wrapped in a JSON object. JSON values (such as string, number, boolean) should use their respective primitive form instead. The maximum allowed size for a JSON object is 40960 bytes. For lists of json values, the size of the entire list must be within this limit. The maximum allowed length of a key is 128, while the maximum allowed size of a value is 10240 bytes and you can have up to 256 key-value pairs. The byte sizes are computed by representing the data as a UTF-8 encoded JSON string.\nDirect relations use a space external-id, the external-id for an existing node, and the external-id for the data container. E.g. ```s-spaceExternalId.uniqueNodeExternalId.containerExternalId```\nTimestamps must be a string in the format 'YYYY-MM-DDTHH:MM:SS[.millis][Z|time zone]' with optional milliseconds having precision of 1-3 decimal digits and optional timezone with format ±HH:MM, ±HHMM, ±HH or Z, where Z represents UTC, Year must be between 0001 and 9999.\nDates must be a date string in the format 'YYYY-MM-DD'. Year must be between 1 and 9999. ", - "oneOf": [ - { - "$ref": "#/components/schemas/TextProperty" - }, - { - "$ref": "#/components/schemas/PrimitiveProperty" - }, - { - "$ref": "#/components/schemas/CDFExternalIdReference" - }, - { - "$ref": "#/components/schemas/DirectNodeRelation" - } - ] - } - } - } - ] - }, - "CorePropertyDefinition": { + "AssetAdvancedFilter": { "type": "object", "properties": { - "nullable": { - "type": "boolean", - "description": "Does this property need to be set to a value, or not?", - "default": true - }, - "autoIncrement": { - "type": "boolean", - "description": "When set to ```true```, the API will increment the property based on its highest current value (max value). You can only use this functionality to increment properties of type `int32` or `int64`. If the property has a different data type, the API will return an error.", - "default": false - }, - "defaultValue": { + "advancedFilter": { + "type": "object", + "description": "A filter DSL (Domain Specific Language) to define advanced filter queries.\n\nSee more information about filtering DSL [here](https://docs.cognite.com/dev/concepts/resource_filtering_dsl/ \"filtering DSL\").\n\nSupported properties:\n\n | Property | Type |\n |---------------------------------|-----------------------------------------|\n | `[\"labels\"]` | array of [string] |\n | `[\"createdTime\"]` | number |\n | `[\"dataSetId\"]` | number |\n | `[\"id\"]` | number |\n | `[\"lastUpdatedTime\"]` | number |\n | `[\"parentId\"]` | number |\n | `[\"rootId\"]` | number |\n | `[\"description\"]` | string |\n | `[\"externalId\"]` | string |\n | `[\"metadata\"]` | string |\n | `[\"metadata\", \"someCustomKey\"]` | string |\n | `[\"name\"]` | string |\n | `[\"source\"]` | string |\n\n Note: Filtering on the `[\"metadata\"]` property has the following logic:\n If a value of any metadata keys in an asset matches the filter, the asset matches the filter.", "oneOf": [ { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" + "$ref": "#/components/schemas/AssetBoolFilter" }, { - "type": "object" + "$ref": "#/components/schemas/AssetLeafFilter" } ], - "description": "Default value to use when you do not specify a value for the property. The default value must be of the same type as what you defined for the property itself. \n\n\nWe do not currently support using default values for array/list types. " - }, - "description": { - "type": "string", - "description": "Description of the content and suggested use for this property.", - "maxLength": 1024 - }, - "name": { - "type": "string", - "description": "Readable property name.", - "maxLength": 255 + "example": { + "or": [ + { + "not": { + "and": [ + { + "equals": { + "property": [ + "metadata", + "asset_type" + ], + "value": "gas pump" + } + }, + { + "in": { + "property": [ + "source" + ], + "values": [ + "blueprint", + "inventory" + ] + } + }, + { + "range": { + "property": [ + "dataSetId" + ], + "gte": 1, + "lt": 10 + } + } + ] + } + }, + { + "and": [ + { + "containsAny": { + "property": [ + "labels" + ], + "values": [ + "pump", + "cooler" + ] + } + }, + { + "equals": { + "property": [ + "parentId" + ], + "value": 95867294876 + } + } + ] + }, + { + "search": { + "property": [ + "description" + ], + "value": "My favorite pump" + } + } + ] + } } } }, - "IncludeTyping": { - "type": "boolean", - "description": "Should we return property type information as part of the result?", - "default": false - }, - "RawPropertyValueV3": { - "description": "A value matching the data type of the defined property", + "AssetLeafFilter": { + "description": "Leaf filter.", + "title": "LeafFilter", + "type": "object", "oneOf": [ { - "type": "string" + "$ref": "#/components/schemas/EqualsFilter" }, { - "type": "number" + "$ref": "#/components/schemas/InFilter" }, { - "type": "boolean" + "$ref": "#/components/schemas/GenericRangeFilter" }, { - "type": "object" + "$ref": "#/components/schemas/PrefixFilter" }, { - "type": "array", - "items": { - "type": "string" - } + "$ref": "#/components/schemas/ExistsFilter" }, { - "type": "array", - "items": { - "type": "boolean" + "$ref": "#/components/schemas/ContainsAnyFilter" + }, + { + "$ref": "#/components/schemas/ContainsAllFilter" + }, + { + "$ref": "#/components/schemas/SearchFilter" + } + ] + }, + "AssetBoolFilter": { + "description": "A query that matches items matching boolean combinations of other queries.\nIt is built using one or more boolean clauses of the following types: `and`, `or`, or `not`.", + "title": "BoolFilter", + "type": "object", + "oneOf": [ + { + "type": "object", + "title": "and", + "required": [ + "and" + ], + "properties": { + "and": { + "description": "All of the sub-clauses in the query must appear in matching items.", + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/AssetAdvancedFilter" + } + } } }, { - "type": "array", - "items": { - "type": "number" + "type": "object", + "title": "or", + "required": [ + "or" + ], + "properties": { + "or": { + "description": "At least one of the sub-clauses in the query must appear in matching items.", + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/AssetAdvancedFilter" + } + } } }, { - "type": "array", - "items": { - "type": "object" + "type": "object", + "title": "not", + "required": [ + "not" + ], + "properties": { + "not": { + "title": "Filter DSL", + "description": "Sub-clauses in the query must not appear in matching items.", + "type": "object", + "allOf": [ + { + "$ref": "#/components/schemas/AssetAdvancedFilter" + } + ] + } } } ] }, - "RawPropertyValueListV3": { - "description": "A list of values", - "type": "array", - "items": { - "description": "A value describing the type of the defined property", - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "object" + "AssetSearchFilter": { + "description": "Search request with filter capabilities.", + "example": { + "filter": { + "parentIds": [ + 1293812938, + 293823982938 + ] + }, + "search": { + "name": "flow", + "description": "upstream" + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/AssetFilter" + }, + { + "$ref": "#/components/schemas/AssetLimit" + }, + { + "$ref": "#/components/schemas/AssetSearch" + } + ] + }, + "AssetSearch": { + "type": "object", + "properties": { + "search": { + "type": "object", + "title": "Search", + "description": "Fulltext search for assets. Primarily meant for for human-centric use-cases, not for programs. The query parameter uses a different search algorithm than the deprecated name and description parameters, and will generally give much better results.", + "properties": { + "name": { + "$ref": "#/components/schemas/AssetName" + }, + "description": { + "$ref": "#/components/schemas/AssetDescription" + }, + "query": { + "$ref": "#/components/schemas/AssetQuery" + } } - ] + } } }, - "ParameterizedPropertyValueV3": { - "description": "A parameterized value", + "AssetChange": { + "oneOf": [ + { + "$ref": "#/components/schemas/AssetChangeById" + }, + { + "$ref": "#/components/schemas/AssetChangeByExternalId" + } + ] + }, + "AssetChangeById": { + "allOf": [ + { + "$ref": "#/components/schemas/AssetPatch" + }, + { + "type": "object", + "required": [ + "id" + ], + "properties": { + "id": { + "$ref": "#/components/schemas/CogniteInternalId" + } + } + } + ] + }, + "AssetChangeByExternalId": { + "allOf": [ + { + "$ref": "#/components/schemas/AssetPatch" + }, + { + "type": "object", + "required": [ + "externalId" + ], + "properties": { + "externalId": { + "$ref": "#/components/schemas/CogniteExternalId" + } + } + } + ] + }, + "AssetPatch": { "type": "object", + "description": "Changes applied to asset", "required": [ - "parameter" + "update" ], "properties": { - "parameter": { - "type": "string" + "update": { + "type": "object", + "properties": { + "externalId": { + "$ref": "#/components/schemas/SinglePatchExternalId" + }, + "name": { + "$ref": "#/components/schemas/SinglePatchRequiredName" + }, + "description": { + "$ref": "#/components/schemas/SinglePatchResourceDescription" + }, + "dataSetId": { + "$ref": "#/components/schemas/SinglePatchLong" + }, + "metadata": { + "$ref": "#/components/schemas/ObjectPatchAsset" + }, + "source": { + "$ref": "#/components/schemas/SinglePatchAssetSource" + }, + "parentId": { + "$ref": "#/components/schemas/SinglePatchRequiredInternalId" + }, + "parentExternalId": { + "$ref": "#/components/schemas/SinglePatchRequiredParentExternalId" + }, + "labels": { + "$ref": "#/components/schemas/LabelsPatch" + }, + "geoLocation": { + "$ref": "#/components/schemas/SinglePatchGeoLocation" + } + } } } }, - "ReferencedPropertyValueV3": { - "description": "A property reference value", + "SinglePatchRequiredName": { + "title": "AssetName", "type": "object", + "properties": { + "set": { + "$ref": "#/components/schemas/AssetName" + } + }, + "description": "Set a new value for the asset name.", "required": [ - "property" + "set" + ] + }, + "SinglePatchAssetSource": { + "title": "Source", + "type": "object", + "oneOf": [ + { + "$ref": "#/components/schemas/SetAssetSource" + }, + { + "$ref": "#/components/schemas/RemoveField" + } ], + "description": "Set a new value for the source, or remove the value." + }, + "SinglePatchRequiredInternalId": { + "type": "object", "properties": { - "property": { - "type": "array", - "items": { - "type": "string" - }, - "minItems": 2, - "maxItems": 3 + "set": { + "$ref": "#/components/schemas/CogniteInternalId" } - } + }, + "description": "Change the ID of the object.", + "required": [ + "set" + ] }, - "PropertyValueGroupV3": { + "SinglePatchRequiredExternalId": { "type": "object", - "description": "Group of property values indexed by a local unique identifier. The identifier has to have a length of between 1 and 255 characters. It must also match the pattern ```^[a-zA-Z0-9][a-zA-Z0-9_-]{0,253}[a-zA-Z0-9]?$``` , and it cannot be any of the following reserved identifiers: ```space```, ```externalId```, ```createdTime```, ```lastUpdatedTime```, ```deletedTime```, and ```extensions```. The maximum number of properties depends on your subscription, and is by default 100.", - "minProperties": 1, - "additionalProperties": { - "x-additionalPropertiesName": "property-identifier", - "allOf": [ - { - "$ref": "#/components/schemas/RawPropertyValueV3" - } - ] + "properties": { + "set": { + "$ref": "#/components/schemas/CogniteExternalId" + } }, - "example": { - "someStringProperty": "someStringValue", - "someDirectRelation": { - "space": "mySpace", - "externalId": "someNode" + "description": "Change the external ID of the object.", + "required": [ + "set" + ] + }, + "SinglePatchRequiredParentExternalId": { + "type": "object", + "properties": { + "set": { + "$ref": "#/components/schemas/AssetParentExternalId" + } + }, + "description": "Change the external ID of the object.", + "required": [ + "set" + ] + }, + "NodeOrEdge": { + "oneOf": [ + { + "$ref": "#/components/schemas/NodeDefinition" }, - "someIntArrayProperty": [ - 1, - 2, - 3, - 4 - ] - } + { + "$ref": "#/components/schemas/EdgeDefinition" + } + ] }, - "NodeDefinition": { + "SlimNodeOrEdge": { + "oneOf": [ + { + "$ref": "#/components/schemas/SlimNodeDefinition" + }, + { + "$ref": "#/components/schemas/SlimEdgeDefinition" + } + ] + }, + "ViewPropertyReference": { "type": "object", - "description": "Node", "required": [ - "instanceType", - "space", - "externalId", - "createdTime", - "lastUpdatedTime", - "version" + "view", + "identifier" ], + "deprecated": true, "properties": { - "instanceType": { - "type": "string", - "enum": [ - "node" - ] - }, - "version": { - "description": "Current version of the node", - "type": "integer" - }, - "space": { - "description": "Id of the space that the node belongs to", + "view": { + "description": "Reference to a view - this is deprecated, use `source` with ViewReference instead", "allOf": [ { - "$ref": "#/components/schemas/SpaceSpecification" + "$ref": "#/components/schemas/ViewReference" } ] }, - "externalId": { - "description": "Unique identifier for the node", + "identifier": { + "description": "The unique identifier, from the view, for the property", "allOf": [ { - "$ref": "#/components/schemas/NodeOrEdgeExternalId" - } - ] - }, - "type": { - "description": "Node type", - "allOf": [ - { - "$ref": "#/components/schemas/DirectRelationReference" - } - ] - }, - "createdTime": { - "$ref": "#/components/schemas/EpochTimestamp" - }, - "lastUpdatedTime": { - "$ref": "#/components/schemas/EpochTimestamp" - }, - "deletedTime": { - "description": "Timestamp when the node was soft deleted. Note that deleted nodes are filtered out of query results, but present in sync results. This means that this value will only be present in sync results.", - "allOf": [ - { - "$ref": "#/components/schemas/EpochTimestamp" + "$ref": "#/components/schemas/PropertyIdentifierV3" } ] + } + } + }, + "ThroughReference": { + "type": "object", + "required": [ + "source", + "identifier" + ], + "properties": { + "source": { + "$ref": "#/components/schemas/SourceReference" }, - "properties": { - "type": "object", - "description": "Spaces for the requested view and its containers", - "additionalProperties": { - "x-additionalPropertiesName": "space-name", - "allOf": [ - { - "$ref": "#/components/schemas/ViewOrContainer" - } - ] - } + "identifier": { + "$ref": "#/components/schemas/PropertyIdentifierV3" } } }, - "SlimNodeDefinition": { + "ViewReference": { "type": "object", - "description": "Node", + "description": "Reference to a view", "required": [ - "instanceType", + "type", "space", "externalId", - "wasModified", - "version", - "createdTime", - "lastUpdatedTime" + "version" ], "properties": { - "instanceType": { + "type": { "type": "string", "enum": [ - "node" + "view" ] }, - "version": { - "description": "Current version of the node", - "type": "integer" - }, - "wasModified": { - "description": "Whether or not the node was modified by this ingestion. We only update the nodes if the input differs from the existing state.", - "type": "boolean" - }, "space": { - "description": "Id of the space that the node belongs to", + "description": "Id of the space that the view belongs to", "allOf": [ { "$ref": "#/components/schemas/SpaceSpecification" @@ -25432,43 +25965,34 @@ ] }, "externalId": { - "description": "Unique identifier for the node", + "description": "External-id of the view", "allOf": [ { - "$ref": "#/components/schemas/NodeOrEdgeExternalId" + "$ref": "#/components/schemas/DMSExternalId" } ] }, - "createdTime": { - "$ref": "#/components/schemas/EpochTimestamp" - }, - "lastUpdatedTime": { - "$ref": "#/components/schemas/EpochTimestamp" + "version": { + "description": "Version of the view", + "allOf": [ + { + "$ref": "#/components/schemas/DMSVersion" + } + ] } } }, - "NodeWrite": { - "description": "Node to create or update", + "DataModelReference": { "type": "object", + "description": "Data model reference", "required": [ - "instanceType", "space", - "externalId" + "externalId", + "version" ], "properties": { - "instanceType": { - "type": "string", - "enum": [ - "node" - ], - "default": "node" - }, - "existingVersion": { - "description": "Fail the ingestion request if the node's version is greater than this value. If no existingVersion is specified, the ingestion will always overwrite any existing data for the edge (for the specified container or view). If existingVersion is set to 0, the upsert will behave as an insert, so it will fail the bulk if the item already exists. If skipOnVersionConflict is set on the ingestion request, then the item will be skipped instead of failing the ingestion request.", - "type": "integer" - }, "space": { - "description": "Id of the space that the node belongs to. This space-id cannot be updated.", + "description": "Id of the space that the data model belongs to", "allOf": [ { "$ref": "#/components/schemas/SpaceSpecification" @@ -25476,154 +26000,78 @@ ] }, "externalId": { - "description": "Unique identifier for the node", + "description": "External-id of the data model", "allOf": [ { - "$ref": "#/components/schemas/NodeOrEdgeExternalId" + "$ref": "#/components/schemas/DMSExternalId" } ] }, - "type": { - "description": "Node type (direct relation)", + "version": { + "description": "Version of the data model", "allOf": [ { - "$ref": "#/components/schemas/DirectRelationReference" + "$ref": "#/components/schemas/DMSVersion" } ] - }, - "sources": { - "type": "array", - "description": "List of source properties to write. The properties are from the view and/or the container(s) making up this node.", - "minItems": 1, - "maxItems": 100, - "items": { - "$ref": "#/components/schemas/EdgeOrNodeData" - } } } }, - "EdgeOrNodeData": { - "type": "object", - "description": "Property values for the identified/specified view or container", - "properties": { - "source": { - "$ref": "#/components/schemas/SourceReference" - }, - "properties": { - "$ref": "#/components/schemas/PropertyValueGroupV3" - } - }, - "required": [ - "source" - ] - }, - "EdgeDefinition": { + "CreateViewProperty": { "type": "object", - "description": "Edge", "required": [ - "instanceType", - "type", - "space", - "externalId", - "createdTime", - "lastUpdatedTime", - "startNode", - "endNode", - "version" + "container", + "containerPropertyIdentifier" ], "properties": { - "instanceType": { + "name": { "type": "string", - "enum": [ - "edge" - ] - }, - "version": { - "description": "Current version of the edge", - "type": "integer" + "description": "Readable property name.", + "maxLength": 255 }, - "type": { - "description": "Edge type", - "allOf": [ - { - "$ref": "#/components/schemas/DirectRelationReference" - } - ] + "description": { + "type": "string", + "description": "Description of the content and suggested use for this property.", + "maxLength": 1024 }, - "space": { - "description": "Id of the space the edge belongs to", - "allOf": [ - { - "$ref": "#/components/schemas/SpaceSpecification" - } - ] + "container": { + "$ref": "#/components/schemas/ContainerReference" }, - "externalId": { - "description": "Unique identifier for the edge. Can also be a null character.", + "containerPropertyIdentifier": { + "description": "The unique identifier for the property (Unique within the referenced container).", "allOf": [ { - "$ref": "#/components/schemas/NodeOrEdgeExternalId" + "$ref": "#/components/schemas/PropertyIdentifierV3" } ] }, - "createdTime": { - "$ref": "#/components/schemas/EpochTimestamp" - }, - "lastUpdatedTime": { - "$ref": "#/components/schemas/EpochTimestamp" - }, - "deletedTime": { - "description": "Timestamp when the edge was soft deleted. Note that deleted edges are filtered out of query results, but present in sync results. This means that this value will only be present in sync results.", + "source": { + "description": "Indicates on what type a referenced direct relation is expected to be (although not required). Only applicable for direct relation properties.", "allOf": [ { - "$ref": "#/components/schemas/EpochTimestamp" + "$ref": "#/components/schemas/ViewReference" } ] - }, - "properties": { - "type": "object", - "description": "Spaces for the requested view and its containers", - "additionalProperties": { - "$ref": "#/components/schemas/ViewOrContainer" - } - }, - "startNode": { - "$ref": "#/components/schemas/DirectRelationReference" - }, - "endNode": { - "$ref": "#/components/schemas/DirectRelationReference" } } }, - "SlimEdgeDefinition": { + "ContainerReference": { "type": "object", - "description": "Edge", + "description": "Reference to an existing container", "required": [ - "instanceType", + "type", "space", - "externalId", - "wasModified", - "version", - "createdTime", - "lastUpdatedTime" + "externalId" ], "properties": { - "instanceType": { + "type": { "type": "string", "enum": [ - "edge" + "container" ] }, - "version": { - "description": "Current version of the edge", - "type": "integer" - }, - "wasModified": { - "description": "Whether or not the edge was modified by this ingestion. We only update the edges if the input differs from the existing state.", - "type": "boolean" - }, "space": { - "description": "Id of the space that the edge belongs to", + "description": "Id of the space hosting (containing) the container", "allOf": [ { "$ref": "#/components/schemas/SpaceSpecification" @@ -25631,54 +26079,25 @@ ] }, "externalId": { - "description": "Unique alphanumeric identifier for the edge", + "description": "External-id of the container", "allOf": [ { - "$ref": "#/components/schemas/NodeOrEdgeExternalId" + "$ref": "#/components/schemas/DMSExternalId" } ] - }, - "createdTime": { - "$ref": "#/components/schemas/EpochTimestamp" - }, - "lastUpdatedTime": { - "$ref": "#/components/schemas/EpochTimestamp" } } }, - "EdgeWrite": { - "description": "Edge to create or update", + "DataModelCore": { "type": "object", "required": [ - "instanceType", "space", "externalId", - "startNode", - "endNode", - "type" + "version" ], "properties": { - "instanceType": { - "type": "string", - "enum": [ - "edge" - ], - "default": "edge" - }, - "existingVersion": { - "description": "Fail the ingestion request if the edge's version is greater than this value. If no existingVersion is specified, the ingestion will always overwrite any existing data for the edge (for the specified container or view). If existingVersion is set to 0, the upsert will behave as an insert, so it will fail the bulk if the item already exists. If skipOnVersionConflict is set on the ingestion request, then the item will be skipped instead of failing the ingestion request.", - "type": "integer" - }, - "type": { - "description": "Edge type (direct relation)", - "allOf": [ - { - "$ref": "#/components/schemas/DirectRelationReference" - } - ] - }, "space": { - "description": "Id of the space that the edge belongs to. This id cannot be updated.", + "description": "Id of the space that the data model belongs to", "allOf": [ { "$ref": "#/components/schemas/SpaceSpecification" @@ -25686,2902 +26105,5001 @@ ] }, "externalId": { - "description": "Unique alphanumeric identifier for the edge", + "description": "External id that uniquely identifies this data model", "allOf": [ { - "$ref": "#/components/schemas/NodeOrEdgeExternalId" + "$ref": "#/components/schemas/DMSExternalId" } ] }, - "startNode": { - "$ref": "#/components/schemas/DirectRelationReference" + "name": { + "type": "string", + "description": "Readable name meant for use in UIs", + "maxLength": 255 }, - "endNode": { - "$ref": "#/components/schemas/DirectRelationReference" + "description": { + "type": "string", + "description": "Description of the content and intended use of the data model", + "maxLength": 1024 }, - "sources": { - "type": "array", - "description": "Properties to write to in a view or container, for the edge.", - "minItems": 1, - "maxItems": 100, - "items": { - "$ref": "#/components/schemas/EdgeOrNodeData" - } + "version": { + "description": "Data model version (opaque string controlled by client applications)", + "allOf": [ + { + "$ref": "#/components/schemas/DMSVersion" + } + ] } } }, - "FilterDefinition": { - "type": "object", - "description": "A filter Domain Specific Language (DSL) used to create advanced filter queries.", - "oneOf": [ + "DataModel": { + "allOf": [ { - "$ref": "#/components/schemas/DataModelsBoolFilter" + "$ref": "#/components/schemas/DataModelCore" }, { - "$ref": "#/components/schemas/DataModelsLeafFilter" - } - ], - "example": { - "and": [ - { - "in": { - "property": [ - "tag" - ], - "values": [ - 10011, - 10011 - ] - } - }, - { - "range": { - "property": [ - "weight" - ], - "gte": 0 + "type": "object", + "required": [ + "createdTime", + "lastUpdatedTime", + "isGlobal" + ], + "properties": { + "views": { + "type": "array", + "description": "List of views included in this data model. We can expand the views to use the full view definitions,\ni.e. with all the dependent views.\n\nUse the ```InlineViews``` query parameter to request expansion. If you do not set the\n```InlineViews``` query parameter, we will return the references to views instead.\n", + "items": { + "$ref": "#/components/schemas/DataModelProperty" + } + }, + "createdTime": { + "$ref": "#/components/schemas/EpochTimestamp" + }, + "lastUpdatedTime": { + "$ref": "#/components/schemas/EpochTimestamp" + }, + "isGlobal": { + "description": "Is this a global data model.", + "type": "boolean" } } - ] - } + } + ] }, - "TableExpressionFilterDefinition": { - "type": "object", - "description": "A filter Domain Specific Language (DSL) used to create advanced filter queries.", - "oneOf": [ + "DataModelProperty": { + "anyOf": [ { - "$ref": "#/components/schemas/TableExpressionDataModelsBoolFilter" + "$ref": "#/components/schemas/ViewReference" }, { - "$ref": "#/components/schemas/TableExpressionLeafFilter" + "$ref": "#/components/schemas/ViewDefinition" } - ], - "example": { - "and": [ - { - "in": { - "property": [ - "tag" - ], - "values": [ - 10011, - 10011 - ] - } - }, - { - "range": { - "property": [ - "weight" - ], - "gte": 0 - } - } - ] - } - }, - "TableExpressionChainToDefinition": { - "type": "string", - "description": "Control which side of the edge to chain to. This option is only applicable if the view referenced in the `from` field consists of edges. \n- `source` will chain to `start` if you're following edges outwards i.e `direction=outwards`. If you're following edges inwards i.e `direction=inwards`, it will chain to `end`.\n- `destination (default)` will chain to `end` if you're following edges outwards i.e `direction=outwards`. If you're following edges inwards i.e `direction=inwards`, it will chain to `start`.", - "enum": [ - "source", - "destination" - ], - "default": "destination" + ] }, - "DataModelsBoolFilter": { - "title": "BoolFilter", - "description": "Build a new query by combining other queries, using boolean operators. We support the `and`, `or`, and\n`not` boolean operators.\n", - "type": "object", - "oneOf": [ + "DataModelCreate": { + "allOf": [ + { + "$ref": "#/components/schemas/DataModelCore" + }, { "type": "object", - "title": "and", - "required": [ - "and" - ], "properties": { - "and": { - "description": "All the sub-clauses in the query must return a matching item.", + "views": { "type": "array", - "minItems": 1, + "description": "List of views included in this data model. You can use a reference to an existing view to specify the new view. Or you can create a new view/update an existing view by including an existing view specification.", "items": { - "$ref": "#/components/schemas/FilterDefinition" + "$ref": "#/components/schemas/DataModelCreateProperty" } } } + } + ] + }, + "DataModelCreateProperty": { + "anyOf": [ + { + "$ref": "#/components/schemas/ViewReference" }, + { + "$ref": "#/components/schemas/ViewCreateDefinition" + } + ] + }, + "ViewCreateDefinition": { + "allOf": [ { "type": "object", - "title": "or", "required": [ - "or" + "externalId" ], "properties": { - "or": { - "description": "One or more of the sub-clauses in the query must return a matching item.", - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/FilterDefinition" - } + "externalId": { + "description": "External id uniquely identifying this view. The values ```Query```, ```Mutation```, ```Subscription```, ```String```, ```Int32```, ```Int64```, ```Int```, ```Float32```, ```Float64```, ```Float```, ```Timestamp```, ```JSONObject```, ```Date```, ```Numeric```, ```Boolean```, ```PageInfo```, ```File```, ```Sequence``` and ```TimeSeries``` are reserved.", + "allOf": [ + { + "$ref": "#/components/schemas/DMSExternalId" + } + ] } } }, + { + "$ref": "#/components/schemas/ViewCommon" + }, { "type": "object", - "title": "not", - "required": [ - "not" - ], "properties": { - "not": { - "title": "Filter DSL", - "description": "None of the sub-clauses in the query can return a matching item.", + "properties": { "type": "object", - "allOf": [ - { - "$ref": "#/components/schemas/FilterDefinition" - } - ] + "description": "View with included properties and expected edges, indexed by a unique space-local identifier. The view identifier has to have a length of between 1 and 255 characters. It must also match the pattern ```^[a-zA-Z0-9][a-zA-Z0-9_-]{0,253}[a-zA-Z0-9]?$```, and it cannot be any of the following reserved identifiers: ```space```, ```externalId```, ```createdTime```, ```lastUpdatedTime```, ```deletedTime```, ```edge_id```, ```node_id```, ```project_id```, ```property_group```, ```seq```, ```tg_table_name```, and ```extensions```. The maximum number of properties depends on the project subscription and is by default 100.", + "additionalProperties": { + "x-additionalPropertiesName": "property-identifier", + "allOf": [ + { + "$ref": "#/components/schemas/ViewCreateDefinitionProperty" + } + ] + } } } } ] }, - "TableExpressionDataModelsBoolFilter": { - "title": "BoolFilter", - "description": "Build a new query by combining other queries, using boolean operators. We support the `and`, `or`, and\n`not` boolean operators.\n", - "type": "object", + "ViewCreateDefinitionProperty": { + "description": "A reference to a container property or a connection describing edges that are expected to\nexist (ConnectionDefinition).\n\nIf the referenced container property is a direct relation, a view of the node can be specified. The view is\na hint to the consumer on what type of data is expected to be of interest in the context of this view.\n\nA connection describes the edges that are likely to exist to aid in discovery and documentation of the view.\nA listed edge is not required. i.e. It does not have to exist when included in this list. The target nodes of\nthis connection will match the view specified in the source property. A connection has a max distance of one hop\nin the underlying graph.\n", "oneOf": [ + { + "$ref": "#/components/schemas/CreateViewProperty" + }, + { + "$ref": "#/components/schemas/ConnectionDefinition" + } + ] + }, + "ViewDefinition": { + "allOf": [ { "type": "object", - "title": "and", "required": [ - "and" + "externalId" ], "properties": { - "and": { - "description": "All the sub-clauses in the query must return a matching item.", - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/TableExpressionFilterDefinition" - } - } - } - }, - { - "type": "object", - "title": "or", - "required": [ - "or" - ], - "properties": { - "or": { - "description": "One or more of the sub-clauses in the query must return a matching item.", - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/components/schemas/TableExpressionFilterDefinition" - } + "externalId": { + "description": "External id uniquely identifying this view", + "allOf": [ + { + "$ref": "#/components/schemas/DMSExternalId" + } + ] } } }, + { + "$ref": "#/components/schemas/ViewCommon" + }, { "type": "object", - "title": "not", "required": [ - "not" + "createdTime", + "lastUpdatedTime", + "writable", + "queryable", + "properties", + "usedFor", + "isGlobal", + "mappedContainers" ], "properties": { - "not": { - "title": "Filter DSL", - "description": "None of the sub-clauses in the query can return a matching item.", + "createdTime": { + "$ref": "#/components/schemas/EpochTimestamp" + }, + "lastUpdatedTime": { + "$ref": "#/components/schemas/EpochTimestamp" + }, + "writable": { + "type": "boolean", + "description": "Does the view support write operations, i.e. is it ```writable```? You can write to a view if the view maps all non-nullable properties." + }, + "queryable": { + "type": "boolean", + "description": "Does the view support queries, i.e. is it queryable? You can query a view if it either has a filter or at least one property mapped to a container." + }, + "usedFor": { + "$ref": "#/components/schemas/UsedFor" + }, + "isGlobal": { + "type": "boolean", + "description": "Is this a global view." + }, + "properties": { "type": "object", - "allOf": [ - { - "$ref": "#/components/schemas/TableExpressionFilterDefinition" - } - ] + "description": "List of properties and connections included in this view. The view identifier has to have a length of between 1 and 255 characters. It must also match the pattern ```^[a-zA-Z0-9][a-zA-Z0-9_-]{0,253}[a-zA-Z0-9]?$```.", + "additionalProperties": { + "x-additionalPropertiesName": "view-property-identifier", + "allOf": [ + { + "$ref": "#/components/schemas/ViewDefinitionProperty" + } + ] + } + }, + "mappedContainers": { + "type": "array", + "description": "List of containers with properties mapped by this view.", + "items": { + "$ref": "#/components/schemas/ContainerReference" + } } } } ] }, - "DataModelsLeafFilter": { - "description": "Leaf filter", - "title": "LeafFilter", - "type": "object", + "ViewDefinitionProperty": { "oneOf": [ { - "$ref": "#/components/schemas/EqualsFilterV3" - }, - { - "$ref": "#/components/schemas/InFilterV3" - }, - { - "$ref": "#/components/schemas/RangeFilterV3" - }, - { - "$ref": "#/components/schemas/PrefixFilterV3" + "$ref": "#/components/schemas/ViewPropertyDefinition" }, { - "$ref": "#/components/schemas/DMSExistsFilter" + "$ref": "#/components/schemas/ConnectionDefinitionRead" + } + ] + }, + "ViewCommon": { + "type": "object", + "required": [ + "space", + "version" + ], + "properties": { + "space": { + "description": "Id of the space that the view belongs to", + "allOf": [ + { + "$ref": "#/components/schemas/SpaceSpecification" + } + ] }, - { - "$ref": "#/components/schemas/ContainsAnyFilterV3" + "name": { + "type": "string", + "description": "Readable name, meant for use in UIs", + "maxLength": 255 }, - { - "$ref": "#/components/schemas/ContainsAllFilterV3" + "description": { + "type": "string", + "description": "Description. Intended to describe the content, and use, of this view.", + "maxLength": 1024 }, - { - "$ref": "#/components/schemas/MatchAllFilter" + "filter": { + "$ref": "#/components/schemas/FilterDefinition" }, - { - "$ref": "#/components/schemas/DataModelsNestedFilter" + "implements": { + "type": "array", + "description": "References to the views from where this view will inherit properties - both mapped properties (properties pointing to container properties like text, integers, direct relations) and connection properties (like reverse direct relations). \n\n\nNote: The order you list the views in is significant. We use this order to deduce the priority when we encounter duplicate property references.\n\n\nIf you do not specify a view version, we will use the most recent version available at the time of creation. ", + "items": { + "$ref": "#/components/schemas/ViewReference" + } }, + "version": { + "$ref": "#/components/schemas/DMSVersion" + } + } + }, + "ConnectionDefinition": { + "oneOf": [ { - "$ref": "#/components/schemas/OverlapsFilterV3" + "$ref": "#/components/schemas/EdgeConnection" }, { - "$ref": "#/components/schemas/HasExistingDataFilterV3" + "$ref": "#/components/schemas/ReverseDirectRelationConnection" } ] }, - "TableExpressionLeafFilter": { - "description": "Leaf filter", - "title": "LeafFilter", - "type": "object", + "ConnectionDefinitionRead": { "oneOf": [ { - "$ref": "#/components/schemas/TableExpressionEqualsFilterV3" - }, - { - "$ref": "#/components/schemas/TableExpressionInFilterV3" - }, - { - "$ref": "#/components/schemas/TableExpressionRangeFilterV3" - }, - { - "$ref": "#/components/schemas/TableExpressionPrefixFilterV3" + "$ref": "#/components/schemas/EdgeConnection" }, { - "$ref": "#/components/schemas/DMSExistsFilter" + "$ref": "#/components/schemas/ReverseDirectRelationConnectionRead" + } + ] + }, + "EdgeConnection": { + "type": "object", + "required": [ + "type", + "source" + ], + "description": "Describes the edge(s) that are likely to exist to aid in discovery and documentation of the view. A listed edge is not required. i.e. It does not have to exist when included in this list. A connection has a max distance of one hop.", + "properties": { + "connectionType": { + "type": "string", + "description": "The type of connection, either a single or multi edge connections are expected to exist.", + "enum": [ + "single_edge_connection", + "multi_edge_connection" + ], + "default": "multi_edge_connection" }, - { - "$ref": "#/components/schemas/TableExpressionContainsAnyFilterV3" + "name": { + "type": "string", + "description": "Readable property name.", + "maxLength": 255 }, - { - "$ref": "#/components/schemas/TableExpressionContainsAllFilterV3" + "description": { + "type": "string", + "description": "Description of the content and suggested use for this property.", + "maxLength": 1024 }, - { - "$ref": "#/components/schemas/MatchAllFilter" + "type": { + "$ref": "#/components/schemas/DirectRelationReference" }, - { - "$ref": "#/components/schemas/DataModelsNestedFilter" + "source": { + "description": "The target node(s) of this connection can be read through the view specified in 'source'.", + "allOf": [ + { + "$ref": "#/components/schemas/ViewReference" + } + ] }, - { - "$ref": "#/components/schemas/TableExpressionOverlapsFilterV3" + "edgeSource": { + "description": "The edge(s) of this connection can be read through the view specified in 'edgeSource'.", + "allOf": [ + { + "$ref": "#/components/schemas/ViewReference" + } + ] }, - { - "$ref": "#/components/schemas/HasExistingDataFilterV3" + "direction": { + "type": "string", + "enum": [ + "outwards", + "inwards" + ], + "default": "outwards" } - ] + } }, - "NodeOrEdgeDeleteRequest": { + "ReverseDirectRelationConnection": { "type": "object", "required": [ - "items" + "connectionType", + "source", + "through" ], + "description": "Describes the direct relation(s) pointing to instances read through this view. This connection type is used to aid in discovery and documentation of the view.", "properties": { - "items": { - "type": "array", - "minItems": 1, - "maxItems": 1000, - "items": { - "type": "object", - "required": [ - "instanceType", - "space", - "externalId" - ], - "properties": { - "instanceType": { - "description": "Is the item to delete a node, or an edge", - "type": "string", - "enum": [ - "node", - "edge" - ] - }, - "externalId": { - "description": "External id for the node or edge (item) you want to delete.", - "allOf": [ - { - "$ref": "#/components/schemas/NodeOrEdgeExternalId" - } - ] - }, - "space": { - "description": "Space that the described node or edge (item) belongs to.", - "allOf": [ - { - "$ref": "#/components/schemas/SpaceSpecification" - } - ] - } + "connectionType": { + "type": "string", + "description": "The type of connection. The ```single_reverse_direct_relation``` type is used to indicate that only a single direct relation is expected to exist. The ```multi_reverse_direct_relation``` type is used to indicate that multiple direct relations are expected to exist.", + "enum": [ + "single_reverse_direct_relation", + "multi_reverse_direct_relation" + ] + }, + "name": { + "type": "string", + "description": "Readable property name.", + "maxLength": 255 + }, + "description": { + "type": "string", + "description": "Description of the content and suggested use for this property.", + "maxLength": 1024 + }, + "source": { + "description": "The node(s) containing the direct relation property can be read through the view specified in 'source'.", + "allOf": [ + { + "$ref": "#/components/schemas/ViewReference" } - } + ] + }, + "through": { + "description": "The view or container of the node containing the direct relation property.", + "allOf": [ + { + "$ref": "#/components/schemas/ThroughReference" + } + ] } } }, - "NodeOrEdgeListRequestV3": { + "ReverseDirectRelationConnectionRead": { "allOf": [ { - "type": "object", - "properties": { - "includeTyping": { - "$ref": "#/components/schemas/IncludeTyping" - }, - "sources": { - "$ref": "#/components/schemas/SourceSelectorWithoutPropertiesV3" - }, - "instanceType": { - "description": "The type of instance you are querying for; an edge or a node. If the instance type isn't specified, we list nodes. When instanceType is `edge`, `property` can refer to any container and is defined as [\"edge\", \"type\"], and `value` contains the value of the property.\n\n Example:\n\n ```\n {\n “includeTyping”: true,\n “instanceType”: \"edge\",\n “filter”: {\n “equals”: {\n \"property\": [\n \"edge\",\n \"type\" // VALID VALUES:[space, externalId, createdTime, lastUpdatedTime, startNode, endNode, type ]\n ],\n \"value\": {\n \"space\": \"apm_simple\",\n \"externalId\": \"WMT:23-FO-96187\"\n }\n }\n }\n } \n ```", - "default": "node", - "allOf": [ - { - "$ref": "#/components/schemas/InstanceType" - } - ] - } - } - }, - { - "$ref": "#/components/schemas/Cursor" - }, - { - "$ref": "#/components/schemas/LimitWithDefault1000" - }, - { - "$ref": "#/components/schemas/SortV3" + "$ref": "#/components/schemas/ReverseDirectRelationConnection" }, { "type": "object", + "required": [ + "targetsList" + ], "properties": { - "filter": { - "$ref": "#/components/schemas/FilterDefinition" + "targetsList": { + "description": "Whether or not this reverse direct relation targets a _list_ of direct relations.", + "type": "boolean" } } } ] }, - "DataModelsListRequest": { + "ContainerDefinition": { + "required": [ + "space", + "externalId", + "properties", + "usedFor", + "createdTime", + "lastUpdatedTime", + "isGlobal" + ], "allOf": [ { - "$ref": "#/components/schemas/Cursor" - }, - { - "$ref": "#/components/schemas/ReducedLimit" + "$ref": "#/components/schemas/ContainerCreateDefinition" }, { "type": "object", "properties": { - "spaces": { - "type": "array", - "description": "List of spaces you want to use to limit the returned matches by", - "items": { - "$ref": "#/components/schemas/SpaceSpecification" - } + "createdTime": { + "$ref": "#/components/schemas/EpochTimestamp" }, - "allVersions": { - "$ref": "#/components/schemas/AllVersionsFlag" + "lastUpdatedTime": { + "$ref": "#/components/schemas/EpochTimestamp" }, - "includeGlobal": { - "$ref": "#/components/schemas/IncludeGlobalFlag" + "isGlobal": { + "type": "boolean", + "description": "Is this a global container." } } } ] }, - "DataModelsSort": { + "ContainerCreateDefinition": { "type": "object", + "description": "Container for properties you can access through views. Container specifications give details about storage related details. For instance, how to index the data, and what constraints should be present. You can define a single container to only contain nodes (```node```), only contain edges (```edge```), or to contain both (```all```).", "required": [ - "property" + "space", + "externalId", + "properties" ], "properties": { - "property": { - "description": "The property we should base sorting on when we return ordered data", - "type": "string", - "enum": [ - "space", - "externalId", - "name", - "description", - "version", - "createdTime", - "lastUpdatedTime" + "space": { + "description": "Id of the space the container belongs to", + "allOf": [ + { + "$ref": "#/components/schemas/SpaceSpecification" + } ] }, - "direction": { - "description": "The sort order for the returned information", - "type": "string", - "default": "ascending", - "enum": [ - "ascending", - "descending" + "externalId": { + "description": "External-id of the container. The values ```Query```, ```Mutation```, ```Subscription```, ```String```, ```Int32```, ```Int64```, ```Int```, ```Float32```, ```Float64```, ```Float```, ```Timestamp```, ```JSONObject```, ```Date```, ```Numeric```, ```Boolean```, ```PageInfo```, ```File```, ```Sequence``` and ```TimeSeries``` are reserved.", + "allOf": [ + { + "$ref": "#/components/schemas/DMSExternalId" + } ] }, - "nullsFirst": { - "description": "Should we list nulls first, or last (default) in the returned dataset", - "type": "boolean", - "default": false - } - } - }, - "QueryRequest": { - "type": "object", - "required": [ - "with", - "select" - ], - "properties": { - "with": { + "name": { + "type": "string", + "description": "Readable name for container meant for use in UIs", + "maxLength": 255 + }, + "description": { + "type": "string", + "description": "Description of what the property contains, and how you intend to use it.", + "maxLength": 1024 + }, + "usedFor": { + "$ref": "#/components/schemas/UsedFor" + }, + "properties": { "type": "object", + "description": "We index the property by a local unique identifier. The identifier has to have a length of between 1 and 255 characters. It must also match the pattern ```^[a-zA-Z0-9][a-zA-Z0-9_-]{0,253}[a-zA-Z0-9]?$``` , and it cannot be any of the following reserved identifiers: ```space```, ```externalId```, ```createdTime```, ```lastUpdatedTime```, ```deletedTime```, ```edge_id```, ```node_id```, ```project_id```, ```property_group```, ```seq```, ```tg_table_name```, and ```extensions```. The maximum number of properties depends on the project subscription and is by default 100.", "minProperties": 1, - "maxProperties": 50, "additionalProperties": { - "x-additionalPropertiesName": "result-expression-name", + "x-additionalPropertiesName": "containerPropertyIdentifier", "allOf": [ { - "$ref": "#/components/schemas/QueryTableExpressionV3" + "$ref": "#/components/schemas/ContainerPropertyDefinition" } ] } }, - "cursors": { - "description": "Cursors returned from the previous query request. These cursors match the result set expressions you specified in the ```with``` clause for the query.", + "constraints": { "type": "object", - "maxProperties": 50, + "description": "Set of constraints to apply to the container", "additionalProperties": { - "x-additionalPropertiesName": "pagination cursor reference", + "x-additionalPropertiesName": "constraint-identifier", "allOf": [ { - "$ref": "#/components/schemas/NextCursorV3" + "$ref": "#/components/schemas/ConstraintDefinition" } ] } }, - "select": { + "indexes": { "type": "object", - "minProperties": 1, - "maxProperties": 50, + "description": "Set of indexes to apply to the container. Up to 10 indexes can be added on a container.", "additionalProperties": { - "x-additionalPropertiesName": "result-expression-name", + "x-additionalPropertiesName": "index-identifier", "allOf": [ { - "$ref": "#/components/schemas/QuerySelectV3" + "$ref": "#/components/schemas/IndexDefinition" } ] } + } + } + }, + "ConstraintDefinition": { + "type": "object", + "description": "Defines a constraint across the properties you include.\n\n\nYou can use constraints to enforce that;\n * Certain properties must be present,\n * A value must be unique across a single or several properties.\n\nA 'uniqueness' constraint can only apply to properties that are in the same container. Up to 10 'uniqueness' constraints can be added per container. \n\n\nA 'requires' constraint can reference other containers. As a result, the properties in those other containers must then also be set. Up to 25 'requires' constraints can be added per container. ", + "oneOf": [ + { + "$ref": "#/components/schemas/RequiresConstraintDefinition" }, - "parameters": { - "type": "object", - "description": "Values in filters can be parameterised. Parameters are provided as part of the query object, and referenced in the filter itself.", - "additionalProperties": { - "x-additionalPropertiesName": "parameter-identifier", - "allOf": [ - { - "$ref": "#/components/schemas/RawPropertyValueV3" - } - ] + { + "$ref": "#/components/schemas/UniquenessConstraintDefinition" + } + ] + }, + "UniquenessConstraintDefinition": { + "type": "object", + "required": [ + "properties" + ], + "properties": { + "constraintType": { + "type": "string", + "enum": [ + "uniqueness" + ], + "default": "uniqueness" + }, + "properties": { + "type": "array", + "description": "List of properties included in the constraint. The order you list the properties in is significant.", + "items": { + "type": "string" } }, - "includeTyping": { - "$ref": "#/components/schemas/IncludeTyping" + "bySpace": { + "type": "boolean", + "description": "Whether to make the constraint space-specific", + "default": false } } }, - "SyncRequest": { + "RequiresConstraintDefinition": { "type": "object", "required": [ - "with", - "select" + "require" ], "properties": { - "with": { - "type": "object", - "minProperties": 1, - "maxProperties": 50, - "additionalProperties": { - "$ref": "#/components/schemas/SyncTableExpressionV3" - } + "constraintType": { + "type": "string", + "enum": [ + "requires" + ], + "default": "requires" }, - "cursors": { - "description": "Cursors returned from the previous sync request. These cursors match the result set expressions you specified in the ```with``` clause for the sync.", - "type": "object", - "maxProperties": 50, - "additionalProperties": { - "x-additionalPropertiesName": "sync cursor reference", - "allOf": [ - { - "$ref": "#/components/schemas/NextCursorV3" - } - ] - } - }, - "select": { - "minProperties": 1, - "maxProperties": 50, - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/SyncSelectV3" - } - }, - "parameters": { - "type": "object", - "description": "Parameters to return", - "additionalProperties": { - "x-additionalPropertiesName": "parameter-identifier", - "allOf": [ - { - "$ref": "#/components/schemas/RawPropertyValueV3" - } - ] - } - }, - "includeTyping": { - "$ref": "#/components/schemas/IncludeTyping" + "require": { + "$ref": "#/components/schemas/ContainerReference" } } }, - "AggregationRequest": { - "allOf": [ + "IndexDefinition": { + "type": "object", + "description": "You can optimize query performance by defining an index to apply to a container. You can only create an index across properties belonging to the same container.\n\n\nOrdering of the properties included in the index definition list is significant. The order should match the queries you expect. The properties of an index cannot be updated after creation. If you need to change the index, it must be recreated.\n\n\nIndexes have different requirements for the different property data types. As a result, the create index operation will fail if you specify an invalid combination.\n\n\nUp to 10 indexes can be added on a container.' ", + "oneOf": [ { - "$ref": "#/components/schemas/CommonAggregationRequest" + "$ref": "#/components/schemas/BtreeIndex" }, { - "type": "object", - "required": [ - "view" - ], - "properties": { - "instanceType": { - "$ref": "#/components/schemas/InstanceType" - }, - "view": { - "$ref": "#/components/schemas/ViewReference" - }, - "targetUnits": { - "$ref": "#/components/schemas/TargetUnits" - }, - "includeTyping": { - "$ref": "#/components/schemas/IncludeTyping" - } - } + "$ref": "#/components/schemas/InvertedIndex" } ] }, - "CommonAggregationRequest": { - "description": "Defines an aggregation request. This will let you group, and aggregate supported data types. The request supports filters, and allows optional search matching.", + "BtreeIndex": { "type": "object", + "required": [ + "properties" + ], "properties": { - "query": { - "type": "string", - "description": "Optional query string. The API will parse the query string, and use it to match the text properties on elements to use for the aggregate(s)." - }, "properties": { "type": "array", - "minItems": 1, - "maxItems": 200, - "description": "Optional list (array) of properties you want to apply the query above to. If you do not list any properties, you search through text fields by default.", + "description": "List of properties to define the index across", "items": { "type": "string" } }, - "limit": { - "type": "integer", - "description": "Limit the number of results returned. The default limit is currently at 100 items.", - "minimum": 1, - "maximum": 1000, - "default": 100 - }, - "aggregates": { - "type": "array", - "maxItems": 5, - "items": { - "$ref": "#/components/schemas/AggregationDefinition" - } + "indexType": { + "type": "string", + "enum": [ + "btree" + ], + "default": "btree", + "description": "The B-tree index supports the following operations;\n\n * less than,\n * less than or equal,\n * equality (is equal),\n * larger than or equal, and\n * larger than.\n\n\nBy enabling the index to be cursorable, you can use it to efficiently query with custom sort options, and queries will emit cursors that can be used to paginate through the results. " }, - "groupBy": { - "type": "array", - "description": "The selection of fields to group the results by when doing aggregations. You can specify up to 5 items \nto group by.\n\nWhen you do not specify any aggregates, the fields listed in the `groupBy` clause will return the unique \nvalues stored for each field.\n", - "minItems": 1, - "maxItems": 5, - "items": { - "type": "string" - } + "cursorable": { + "type": "boolean", + "description": "Whether the index can be used for cursor-based pagination", + "default": false }, - "filter": { - "$ref": "#/components/schemas/FilterDefinition" + "bySpace": { + "type": "boolean", + "description": "Whether to make the index space-specific", + "default": false } } }, - "AggregatedResultItemCollection": { + "InvertedIndex": { + "type": "object", "required": [ - "items", "properties" ], - "type": "object", "properties": { - "items": { + "properties": { "type": "array", + "description": "List of properties to define the index across", "items": { - "$ref": "#/components/schemas/AggregatedResultItem" + "type": "string" } + }, + "indexType": { + "type": "string", + "enum": [ + "inverted" + ], + "default": "inverted", + "description": "An inverted index can be used to index composite values, and the queries to be handled by the index need to search for element values that appear within the composite items. So if for example you have a property X of type `int[]` and you want to efficiently query for all instances where X contains some value Y, you can create an inverted index on X. " } } }, - "AggregatedResultItem": { - "type": "object", - "required": [ - "instanceType", - "aggregates" - ], - "properties": { - "instanceType": { - "$ref": "#/components/schemas/InstanceType" + "ViewPropertyDefinition": { + "description": "Property definition", + "allOf": [ + { + "$ref": "#/components/schemas/ViewCorePropertyDefinition" }, - "group": { + { "type": "object", - "additionalProperties": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - } - ] - }, - "example": { - "name": "PumpName1", - "tag": "tag01" - } - }, - "aggregates": { - "type": "array", - "minItems": 1, - "maxItems": 5, - "items": { - "$ref": "#/components/schemas/AggregatedValueItem" + "required": [ + "container", + "containerPropertyIdentifier" + ], + "properties": { + "name": { + "type": "string", + "description": "Readable property name.", + "maxLength": 255 + }, + "description": { + "type": "string", + "description": "Description of the content and suggested use for this property.", + "maxLength": 1024 + }, + "container": { + "$ref": "#/components/schemas/ContainerReference" + }, + "containerPropertyIdentifier": { + "description": "The unique identifier for the mapped property in the referenced container.", + "allOf": [ + { + "$ref": "#/components/schemas/DMSExternalId" + } + ] + } } } - } + ] }, - "AggregatedValueItem": { - "oneOf": [ - { - "$ref": "#/components/schemas/AggregatedNumberValue" - }, + "ContainerPropertyDefinition": { + "description": "Defines a property of a container. You can reference this property in views.", + "allOf": [ { - "$ref": "#/components/schemas/AggregatedHistogramValue" + "$ref": "#/components/schemas/ContainerCorePropertyDefinition" } ] }, - "AggregatedNumberValue": { - "type": "object", - "required": [ - "aggregate" - ], - "properties": { - "aggregate": { - "type": "string", - "example": "avg", - "enum": [ - "avg", - "min", - "max", - "count", - "sum" - ] - }, - "property": { - "description": "The property the aggregate was calculated from", - "type": "string", - "example": "duration" - }, - "value": { - "type": "number", - "description": "Value returned by the aggregate function", - "example": 0.2 + "TypePropertyDefinition": { + "description": "Describes the type and configuration of a property included in the result.", + "allOf": [ + { + "$ref": "#/components/schemas/ViewCorePropertyDefinition" } - } + ] }, - "AggregatedHistogramValue": { - "type": "object", - "required": [ - "aggregate", - "interval", - "property", - "buckets" - ], - "properties": { - "aggregate": { - "type": "string", - "enum": [ - "histogram" - ] - }, - "interval": { - "type": "number", - "example": 50 - }, - "property": { - "type": "string", - "example": "duration" + "ViewCorePropertyDefinition": { + "allOf": [ + { + "$ref": "#/components/schemas/CorePropertyDefinition" }, - "buckets": { - "type": "array", - "description": "List (array) of buckets to use for histogram aggregates.", - "items": { - "type": "object", - "required": [ - "start", - "count" - ], - "properties": { - "start": { - "description": "Start value for a histogram bucket", - "type": "number", - "example": 1050 - }, - "count": { - "description": "Number of items in the histogram bucket", - "type": "integer", - "example": 7 - } + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "description": "The data-type to use when storing the property. Supported storage types are;\n\n\n* single value,\n * lists of text (allows user control of collation),\n * boolean,\n * 32-bit, and 64-bit floats,\n * 32-bit, and 64-bit integers,\n * timestamps,\n * dates,\n * JSON fragments,\n * time series external-id reference,\n * file external-id reference,\n * sequence external-id reference\n * direct relation to an existing node.\n\n\nThe JSON fragments have to be valid JSON objects. If JSON arrays are to be stored, these must be wrapped in a JSON object. JSON values (such as string, number, boolean) should use their respective primitive form instead. The maximum allowed size for a JSON object is 40960 bytes. For lists of json values, the size of the entire list must be within this limit. The maximum allowed length of a key is 128, while the maximum allowed size of a value is 10240 bytes and you can have up to 256 key-value pairs. The byte sizes are computed by representing the data as a UTF-8 encoded JSON string.\nDirect relations use a space external-id, the external-id for an existing node, and the external-id for the data container. E.g. ```s-spaceExternalId.uniqueNodeExternalId.containerExternalId```. The ```view``` property on direct relation can optionally be set, and if it is set then this is a hint to the client on what kind of data is expected to exist.\nTimestamps must be a string in the format 'YYYY-MM-DDTHH:MM:SS[.millis][Z|time zone]' with optional milliseconds having precision of 1-3 decimal digits and optional timezone with format ±HH:MM, ±HHMM, ±HH or Z, where Z represents UTC, Year must be between 0001 and 9999.\nDates must be a date string in the format 'YYYY-MM-DD'. Year must be between 1 and 9999. ", + "oneOf": [ + { + "$ref": "#/components/schemas/TextProperty" + }, + { + "$ref": "#/components/schemas/PrimitiveProperty" + }, + { + "$ref": "#/components/schemas/CDFExternalIdReference" + }, + { + "$ref": "#/components/schemas/ViewDirectNodeRelation" + } + ] } } } - } - }, - "NodeOrEdgeSearchRequest": { - "description": "Searching nodes or edges using properties from a view", - "type": "object", - "allOf": [ - { - "$ref": "#/components/schemas/SearchRequestV3" - } ] }, - "SearchRequestV3": { + "ContainerCorePropertyDefinition": { "allOf": [ + { + "$ref": "#/components/schemas/CorePropertyDefinition" + }, { "type": "object", "required": [ - "view" + "type" ], "properties": { - "view": { - "$ref": "#/components/schemas/ViewReference" - }, - "query": { - "type": "string", - "description": "Query string that will be parsed and used for search." - }, - "instanceType": { - "description": "Limit the search query to searching nodes or edges. Unless you set the item type to apply the search to, the service will default to searching nodes within the view.", - "allOf": [ + "type": { + "description": "The data-type to use when storing the property. Supported storage types are;\n\n\n* single value,\n * lists of text (allows user control of collation),\n * boolean,\n * 32-bit, and 64-bit floats,\n * 32-bit, and 64-bit integers,\n * timestamps,\n * dates,\n * JSON fragments,\n * time series external-id reference,\n * file external-id reference,\n * sequence external-id reference\n * direct relation to an existing node.\n\n\nThe JSON fragments have to be valid JSON objects. If JSON arrays are to be stored, these must be wrapped in a JSON object. JSON values (such as string, number, boolean) should use their respective primitive form instead. The maximum allowed size for a JSON object is 40960 bytes. For lists of json values, the size of the entire list must be within this limit. The maximum allowed length of a key is 128, while the maximum allowed size of a value is 10240 bytes and you can have up to 256 key-value pairs. The byte sizes are computed by representing the data as a UTF-8 encoded JSON string.\nDirect relations use a space external-id, the external-id for an existing node, and the external-id for the data container. E.g. ```s-spaceExternalId.uniqueNodeExternalId.containerExternalId```\nTimestamps must be a string in the format 'YYYY-MM-DDTHH:MM:SS[.millis][Z|time zone]' with optional milliseconds having precision of 1-3 decimal digits and optional timezone with format ±HH:MM, ±HHMM, ±HH or Z, where Z represents UTC, Year must be between 0001 and 9999.\nDates must be a date string in the format 'YYYY-MM-DD'. Year must be between 1 and 9999. ", + "oneOf": [ { - "$ref": "#/components/schemas/InstanceType" + "$ref": "#/components/schemas/TextProperty" + }, + { + "$ref": "#/components/schemas/PrimitiveProperty" + }, + { + "$ref": "#/components/schemas/CDFExternalIdReference" + }, + { + "$ref": "#/components/schemas/DirectNodeRelation" + }, + { + "$ref": "#/components/schemas/EnumProperty" } ] + } + } + } + ] + }, + "CorePropertyDefinition": { + "type": "object", + "properties": { + "immutable": { + "type": "boolean", + "description": "Should updates to this property be rejected after the initial population?", + "default": false + }, + "nullable": { + "type": "boolean", + "description": "Does this property need to be set to a value, or not?", + "default": true + }, + "autoIncrement": { + "type": "boolean", + "description": "When set to ```true```, the API will increment the property based on its highest current value (max value). You can only use this functionality to increment properties of type `int32` or `int64`. If the property has a different data type, the API will return an error.", + "default": false + }, + "defaultValue": { + "oneOf": [ + { + "type": "string" }, - "properties": { - "type": "array", - "description": "Optional array of properties you want to search through. If you do not specify one or more properties, the service will search all text fields within the view.", - "items": { - "type": "string" - } - }, - "targetUnits": { - "$ref": "#/components/schemas/TargetUnits" - }, - "filter": { - "$ref": "#/components/schemas/FilterDefinition" + { + "type": "number" }, - "includeTyping": { - "$ref": "#/components/schemas/IncludeTyping" + { + "type": "boolean" }, - "sort": { - "type": "array", - "maxItems": 5, - "items": { - "$ref": "#/components/schemas/SearchSort" - } + { + "type": "object" } + ], + "description": "Default value to use when you do not specify a value for the property. The default value must be of the same type as what you defined for the property itself. \n\n\nWe do not currently support using default values for array/list types. " + }, + "description": { + "type": "string", + "description": "Description of the content and suggested use for this property.", + "maxLength": 1024 + }, + "name": { + "type": "string", + "description": "Readable property name.", + "maxLength": 255 + } + } + }, + "IncludeTyping": { + "type": "boolean", + "description": "Should we return property type information as part of the result?", + "default": false + }, + "RawPropertyValueV3": { + "description": "A value matching the data type of the defined property", + "oneOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "object" + }, + { + "type": "array", + "items": { + "type": "string" } }, { - "$ref": "#/components/schemas/LimitWithDefault1000" + "type": "array", + "items": { + "type": "boolean" + } + }, + { + "type": "array", + "items": { + "type": "number" + } + }, + { + "type": "array", + "items": { + "type": "object" + } } ] }, - "ViewCreateCollection": { + "RawPropertyValueListV3": { + "description": "A list of values", + "type": "array", + "items": { + "description": "A value describing the type of the defined property", + "oneOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "object" + } + ] + } + }, + "ParameterizedPropertyValueV3": { + "description": "A parameterized value", "type": "object", "required": [ - "items" + "parameter" ], "properties": { - "items": { - "type": "array", - "description": "List of views to create/update", - "minItems": 1, - "maxItems": 100, - "items": { - "$ref": "#/components/schemas/ViewCreateDefinition" - } + "parameter": { + "type": "string" } } }, - "ContainerCreateCollection": { + "ReferencedPropertyValueV3": { + "description": "A property reference value", "type": "object", "required": [ - "items" + "property" ], "properties": { - "items": { + "property": { "type": "array", - "description": "List of containers to create/update", - "minItems": 1, - "maxItems": 100, "items": { - "$ref": "#/components/schemas/ContainerCreateDefinition" - } + "type": "string" + }, + "minItems": 2, + "maxItems": 3 } } }, - "DataModelCreateCollection": { + "PropertyValueGroupV3": { "type": "object", - "required": [ - "items" - ], - "properties": { - "items": { - "type": "array", - "description": "List of data models to create/update", - "minItems": 1, - "maxItems": 100, - "items": { - "$ref": "#/components/schemas/DataModelCreate" + "description": "Group of property values indexed by a local unique identifier. The identifier has to have a length of between 1 and 255 characters. It must also match the pattern ```^[a-zA-Z0-9][a-zA-Z0-9_-]{0,253}[a-zA-Z0-9]?$``` , and it cannot be any of the following reserved identifiers: ```space```, ```externalId```, ```createdTime```, ```lastUpdatedTime```, ```deletedTime```, and ```extensions```. The maximum number of properties depends on your subscription, and is by default 100.", + "minProperties": 1, + "additionalProperties": { + "x-additionalPropertiesName": "property-identifier", + "allOf": [ + { + "$ref": "#/components/schemas/RawPropertyValueV3" } - } + ] + }, + "example": { + "someStringProperty": "someStringValue", + "someDirectRelation": { + "space": "mySpace", + "externalId": "someNode" + }, + "someIntArrayProperty": [ + 1, + 2, + 3, + 4 + ] } }, - "NodeAndEdgeCreateCollection": { + "NodeDefinition": { "type": "object", + "description": "Node", "required": [ - "items" + "instanceType", + "space", + "externalId", + "createdTime", + "lastUpdatedTime", + "version" ], "properties": { - "items": { - "type": "array", - "description": "List of nodes and edges to create/update", - "minItems": 1, - "maxItems": 1000, - "items": { - "$ref": "#/components/schemas/NodeOrEdgeCreate" - } + "instanceType": { + "type": "string", + "enum": [ + "node" + ] }, - "autoCreateDirectRelations": { - "type": "boolean", - "description": "Should we create missing target nodes of direct relations? If the target-container constraint has been specified for a direct relation, the target node cannot be auto-created. If you want to point direct relations to a space where you have only read access, this option must be set to false.", - "default": true + "version": { + "description": "Current version of the node", + "type": "integer" }, - "autoCreateStartNodes": { - "type": "boolean", - "description": "Should we create missing start nodes for edges when ingesting? By default, the start node of an edge must exist before we can ingest the edge.", - "default": false + "space": { + "description": "Id of the space that the node belongs to", + "allOf": [ + { + "$ref": "#/components/schemas/SpaceSpecification" + } + ] }, - "autoCreateEndNodes": { - "type": "boolean", - "default": false, - "description": "Should we create missing end nodes for edges when ingesting? By default, the end node of an edge must exist before we can ingest the edge." + "externalId": { + "description": "Unique identifier for the node", + "allOf": [ + { + "$ref": "#/components/schemas/NodeOrEdgeExternalId" + } + ] }, - "skipOnVersionConflict": { - "type": "boolean", - "default": false, - "description": "If existingVersion is specified on any of the nodes/edges in the input, the default behaviour is that the entire ingestion will fail when version conflicts occur. If skipOnVersionConflict is set to true, items with version conflicts will be skipped instead. If no version is specified for nodes/edges, it will do the write directly." + "type": { + "description": "Node type", + "allOf": [ + { + "$ref": "#/components/schemas/DirectRelationReference" + } + ] }, - "replace": { - "type": "boolean", - "description": "How do we behave when a property value exists? Do we replace all matching and existing values with the supplied values (`true`)? Or should we merge in new values for properties together with the existing values (`false`)? Note: This setting applies for all nodes or edges specified in the ingestion call.", - "default": false - } - } - }, - "NodeOrEdgeCreate": { - "oneOf": [ - { - "$ref": "#/components/schemas/NodeWrite" + "createdTime": { + "$ref": "#/components/schemas/EpochTimestamp" }, - { - "$ref": "#/components/schemas/EdgeWrite" - } - ] - }, - "SpaceCreateCollection": { - "type": "object", - "required": [ - "items" - ], - "properties": { - "items": { - "type": "array", - "description": "List of spaces to create/update", - "minItems": 1, - "maxItems": 100, - "items": { - "$ref": "#/components/schemas/SpaceCreateDefinition" + "lastUpdatedTime": { + "$ref": "#/components/schemas/EpochTimestamp" + }, + "deletedTime": { + "description": "Timestamp when the node was soft deleted. Note that deleted nodes are filtered out of query results, but present in sync results. This means that this value will only be present in sync results.", + "allOf": [ + { + "$ref": "#/components/schemas/EpochTimestamp" + } + ] + }, + "properties": { + "type": "object", + "description": "Spaces for the requested view and its containers", + "additionalProperties": { + "x-additionalPropertiesName": "space-name", + "allOf": [ + { + "$ref": "#/components/schemas/ViewOrContainer" + } + ] } } } }, - "SpaceCreateDefinition": { + "SlimNodeDefinition": { "type": "object", + "description": "Node", "required": [ - "space" + "instanceType", + "space", + "externalId", + "wasModified", + "version", + "createdTime", + "lastUpdatedTime" ], "properties": { - "space": { + "instanceType": { "type": "string", - "description": "The Space identifier (id).\n\n\nNote that we have reserved the use of certain space ids. These reserved spaces are:\n * `space`\n * `cdf`\n * `dms`\n * `pg3`\n * `shared`\n * `system`\n * `node`\n * `edge`\n ", - "pattern": "(?!^(space|cdf|dms|pg3|shared|system|node|edge)$)(^[a-zA-Z][a-zA-Z0-9_-]{0,41}[a-zA-Z0-9]?$)", - "minLength": 1, - "maxLength": 43 + "enum": [ + "node" + ] }, - "description": { - "type": "string", - "description": "Used to describe the space you're defining.", - "maxLength": 1024 + "version": { + "description": "Current version of the node", + "type": "integer" }, - "name": { - "type": "string", - "description": "Human-readable name for the space.", - "maxLength": 255 - } - } - }, - "SpaceDefinition": { - "allOf": [ - { - "$ref": "#/components/schemas/SpaceCreateDefinition" + "wasModified": { + "description": "Whether or not the node was modified by this ingestion. We only update the nodes if the input differs from the existing state.", + "type": "boolean" }, - { - "type": "object", - "required": [ - "createdTime", - "lastUpdatedTime", - "isGlobal" - ], - "properties": { - "createdTime": { - "$ref": "#/components/schemas/EpochTimestamp" - }, - "lastUpdatedTime": { - "$ref": "#/components/schemas/EpochTimestamp" - }, - "isGlobal": { - "type": "boolean", - "description": "Is this a global space." + "space": { + "description": "Id of the space that the node belongs to", + "allOf": [ + { + "$ref": "#/components/schemas/SpaceSpecification" } - } - } - ] - }, - "UpsertConflict": { - "type": "object", - "required": [ - "error" - ], - "properties": { - "error": { - "type": "object", - "description": "Details about the error caused by the upsert/update.", - "required": [ - "code", - "message" - ], - "properties": { - "code": { - "type": "integer", - "description": "The HTTP status code returned", - "format": "int32", - "example": 409 - }, - "message": { - "type": "string", - "description": "The error message returned from the service." + ] + }, + "externalId": { + "description": "Unique identifier for the node", + "allOf": [ + { + "$ref": "#/components/schemas/NodeOrEdgeExternalId" } - } + ] + }, + "createdTime": { + "$ref": "#/components/schemas/EpochTimestamp" + }, + "lastUpdatedTime": { + "$ref": "#/components/schemas/EpochTimestamp" } } }, - "ListOfSpaceIdsRequest": { + "NodeWrite": { + "description": "Node to create or update", "type": "object", "required": [ - "items" + "instanceType", + "space", + "externalId" ], "properties": { - "items": { + "instanceType": { + "type": "string", + "enum": [ + "node" + ], + "default": "node" + }, + "existingVersion": { + "description": "Fail the ingestion request if the node's version is greater than this value. If no existingVersion is specified, the ingestion will always overwrite any existing data for the node (for the specified container or view). If existingVersion is set to 0, the upsert will behave as an insert, so it will fail the bulk if the item already exists. If skipOnVersionConflict is set on the ingestion request, then the item will be skipped instead of failing the ingestion request.", + "type": "integer" + }, + "space": { + "description": "Id of the space that the node belongs to. This space-id cannot be updated.", + "allOf": [ + { + "$ref": "#/components/schemas/SpaceSpecification" + } + ] + }, + "externalId": { + "description": "Unique identifier for the node", + "allOf": [ + { + "$ref": "#/components/schemas/NodeOrEdgeExternalId" + } + ] + }, + "type": { + "description": "Node type (direct relation)", + "allOf": [ + { + "$ref": "#/components/schemas/DirectRelationReference" + } + ] + }, + "sources": { "type": "array", + "description": "List of source properties to write. The properties are from the view and/or the container(s) making up this node.", "minItems": 1, "maxItems": 100, "items": { - "type": "object", - "required": [ - "space" - ], - "properties": { - "space": { - "description": "Ids for the spaces to perform operations on", - "allOf": [ - { - "$ref": "#/components/schemas/SpaceSpecification" - } - ] - } - } + "$ref": "#/components/schemas/EdgeOrNodeData" } } } }, - "ListOfContainerSubObjectIdentifierRequest": { + "EdgeOrNodeData": { "type": "object", + "description": "Property values for the identified/specified view or container", + "properties": { + "source": { + "$ref": "#/components/schemas/SourceReference" + }, + "properties": { + "$ref": "#/components/schemas/PropertyValueGroupV3" + } + }, "required": [ - "items" + "source" + ] + }, + "EdgeDefinition": { + "type": "object", + "description": "Edge", + "required": [ + "instanceType", + "type", + "space", + "externalId", + "createdTime", + "lastUpdatedTime", + "startNode", + "endNode", + "version" ], "properties": { - "items": { - "type": "array", - "minItems": 1, - "maxItems": 10, - "items": { - "type": "object", - "required": [ - "space", - "containerExternalId", - "identifier" - ], - "properties": { - "space": { - "$ref": "#/components/schemas/SpaceSpecification" - }, - "containerExternalId": { - "description": "External ids for the requested items", - "allOf": [ - { - "$ref": "#/components/schemas/DMSExternalId" - } - ] - }, - "identifier": { - "type": "string" - } + "instanceType": { + "type": "string", + "enum": [ + "edge" + ] + }, + "version": { + "description": "Current version of the edge", + "type": "integer" + }, + "type": { + "description": "Edge type", + "allOf": [ + { + "$ref": "#/components/schemas/DirectRelationReference" + } + ] + }, + "space": { + "description": "Id of the space the edge belongs to", + "allOf": [ + { + "$ref": "#/components/schemas/SpaceSpecification" + } + ] + }, + "externalId": { + "description": "Unique identifier for the edge. Can also be a null character.", + "allOf": [ + { + "$ref": "#/components/schemas/NodeOrEdgeExternalId" + } + ] + }, + "createdTime": { + "$ref": "#/components/schemas/EpochTimestamp" + }, + "lastUpdatedTime": { + "$ref": "#/components/schemas/EpochTimestamp" + }, + "deletedTime": { + "description": "Timestamp when the edge was soft deleted. Note that deleted edges are filtered out of query results, but present in sync results. This means that this value will only be present in sync results.", + "allOf": [ + { + "$ref": "#/components/schemas/EpochTimestamp" } + ] + }, + "properties": { + "type": "object", + "description": "Spaces for the requested view and its containers", + "additionalProperties": { + "$ref": "#/components/schemas/ViewOrContainer" } + }, + "startNode": { + "$ref": "#/components/schemas/DirectRelationReference" + }, + "endNode": { + "$ref": "#/components/schemas/DirectRelationReference" } } }, - "ListOfSpaceExternalIdsRequest": { + "SlimEdgeDefinition": { "type": "object", + "description": "Edge", "required": [ - "items" + "instanceType", + "space", + "externalId", + "wasModified", + "version", + "createdTime", + "lastUpdatedTime" ], "properties": { - "items": { - "type": "array", - "minItems": 1, - "maxItems": 100, - "items": { - "type": "object", - "required": [ - "space", - "externalId" - ], - "properties": { - "externalId": { - "description": "External ids for the requested items", - "allOf": [ - { - "$ref": "#/components/schemas/DMSExternalId" - } - ] - }, - "space": { - "$ref": "#/components/schemas/SpaceSpecification" - } + "instanceType": { + "type": "string", + "enum": [ + "edge" + ] + }, + "version": { + "description": "Current version of the edge", + "type": "integer" + }, + "wasModified": { + "description": "Whether or not the edge was modified by this ingestion. We only update the edges if the input differs from the existing state.", + "type": "boolean" + }, + "space": { + "description": "Id of the space that the edge belongs to", + "allOf": [ + { + "$ref": "#/components/schemas/SpaceSpecification" } - } + ] + }, + "externalId": { + "description": "Unique alphanumeric identifier for the edge", + "allOf": [ + { + "$ref": "#/components/schemas/NodeOrEdgeExternalId" + } + ] + }, + "createdTime": { + "$ref": "#/components/schemas/EpochTimestamp" + }, + "lastUpdatedTime": { + "$ref": "#/components/schemas/EpochTimestamp" } } }, - "ListOfSpaceExternalIdsRequestWithTyping": { + "EdgeWrite": { + "description": "Edge to create or update", "type": "object", "required": [ - "items" + "instanceType", + "space", + "externalId", + "startNode", + "endNode", + "type" ], "properties": { - "sources": { - "description": "The node/edge must have data in all the sources defined in the list", + "instanceType": { + "type": "string", + "enum": [ + "edge" + ], + "default": "edge" + }, + "existingVersion": { + "description": "Fail the ingestion request if the edge's version is greater than this value. If no existingVersion is specified, the ingestion will always overwrite any existing data for the edge (for the specified container or view). If existingVersion is set to 0, the upsert will behave as an insert, so it will fail the bulk if the item already exists. If skipOnVersionConflict is set on the ingestion request, then the item will be skipped instead of failing the ingestion request.", + "type": "integer" + }, + "type": { + "description": "Edge type (direct relation)", "allOf": [ { - "$ref": "#/components/schemas/SourceSelectorWithoutPropertiesV3" + "$ref": "#/components/schemas/DirectRelationReference" } ] }, - "items": { - "type": "array", - "minItems": 1, - "maxItems": 1000, - "items": { - "type": "object", - "required": [ - "instanceType", - "space", - "externalId" - ], - "properties": { - "instanceType": { - "description": "The type of instance being returned, an edge or a node.", - "allOf": [ - { - "$ref": "#/components/schemas/InstanceType" - } - ] - }, - "externalId": { - "description": "External ids for the requested items", - "allOf": [ - { - "$ref": "#/components/schemas/NodeOrEdgeExternalId" - } - ] - }, - "space": { - "$ref": "#/components/schemas/SpaceSpecification" - } + "space": { + "description": "Id of the space that the edge belongs to. This id cannot be updated.", + "allOf": [ + { + "$ref": "#/components/schemas/SpaceSpecification" } - } + ] }, - "includeTyping": { - "$ref": "#/components/schemas/IncludeTyping" - } - } - }, - "ListOfVersionReferences": { - "type": "object", - "required": [ - "items" - ], - "properties": { - "items": { + "externalId": { + "description": "Unique alphanumeric identifier for the edge", + "allOf": [ + { + "$ref": "#/components/schemas/NodeOrEdgeExternalId" + } + ] + }, + "startNode": { + "$ref": "#/components/schemas/DirectRelationReference" + }, + "endNode": { + "$ref": "#/components/schemas/DirectRelationReference" + }, + "sources": { "type": "array", + "description": "Properties to write to in a view or container, for the edge.", "minItems": 1, "maxItems": 100, "items": { - "type": "object", - "required": [ - "space", - "externalId", - "version" - ], - "properties": { - "externalId": { - "description": "External id for the requested item", - "allOf": [ - { - "$ref": "#/components/schemas/DMSExternalId" - } - ] - }, - "space": { - "description": "Space id for the requested item", - "allOf": [ - { - "$ref": "#/components/schemas/SpaceSpecification" - } - ] - }, - "version": { - "description": "Version of the requested item", - "allOf": [ - { - "$ref": "#/components/schemas/DMSVersion" - } - ] - } - } + "$ref": "#/components/schemas/EdgeOrNodeData" } } } }, - "ListOfAllVersionsReferences": { + "FilterDefinition": { "type": "object", - "required": [ - "items" + "description": "A filter Domain Specific Language (DSL) used to create advanced filter queries.", + "oneOf": [ + { + "$ref": "#/components/schemas/DataModelsBoolFilter" + }, + { + "$ref": "#/components/schemas/DataModelsLeafFilter" + } ], - "properties": { - "items": { - "type": "array", - "minItems": 1, - "maxItems": 100, - "items": { - "type": "object", - "required": [ - "space", - "externalId" - ], - "properties": { - "externalId": { - "description": "External id for the requested item", - "allOf": [ - { - "$ref": "#/components/schemas/DMSExternalId" - } - ] - }, - "space": { - "description": "Space id for the requested item", - "allOf": [ - { - "$ref": "#/components/schemas/SpaceSpecification" - } - ] - } + "example": { + "and": [ + { + "in": { + "property": [ + "tag" + ], + "values": [ + 10011, + 10011 + ] } - } - } - } - }, - "NextCursorV3": { - "description": "The cursor value used to return (paginate to) the next page of results, when more data is available.", - "type": "string" - }, - "MultiNextCursorV3": { - "description": "Cursors to paginate to the next page of results. The cursor applies to each result set expression. We only provide a cursor when more data is available.", - "type": "object", - "properties": { - "additionalProperties": { - "x-additionalPropertiesName": "cursor-name", - "allOf": [ - { - "$ref": "#/components/schemas/NextCursorV3" + }, + { + "range": { + "property": [ + "weight" + ], + "gte": 0 } - ] - } + } + ] } }, - "AggregationDefinition": { + "TableExpressionFilterDefinition": { "type": "object", - "description": "An aggregate. It consists of a name, an aggregator function, and the field to use for the function.", + "description": "A filter Domain Specific Language (DSL) used to create advanced filter queries.", "oneOf": [ { - "$ref": "#/components/schemas/AvgAggregateFunctionV3" - }, - { - "$ref": "#/components/schemas/CountAggregateFunctionV3" - }, - { - "$ref": "#/components/schemas/MinAggregateFunctionV3" - }, - { - "$ref": "#/components/schemas/MaxAggregateFunctionV3" - }, - { - "$ref": "#/components/schemas/SumAggregateFunctionV3" + "$ref": "#/components/schemas/TableExpressionDataModelsBoolFilter" }, { - "$ref": "#/components/schemas/HistogramAggregateFunctionV3" + "$ref": "#/components/schemas/TableExpressionLeafFilter" } - ] - }, - "CountAggregateFunctionV3": { - "title": "count", - "type": "object", - "description": "Counts the number of items. When you specify a property, it returns the number of non-null values for that property.", - "required": [ - "count" ], - "properties": { - "count": { - "type": "object", - "properties": { - "property": { - "type": "string", - "description": "The property to count. If specified, counts all non-null values for the specified property." + "example": { + "and": [ + { + "in": { + "property": [ + "tag" + ], + "values": [ + 10011, + 10011 + ] + } + }, + { + "range": { + "property": [ + "weight" + ], + "gte": 0 } } - } + ] } }, - "AvgAggregateFunctionV3": { - "type": "object", - "title": "avg", - "description": "Calculates the average from the data stored by the specified property. This aggregation uses an average mean calculation, and not an integral mean.", - "required": [ - "avg" + "TableExpressionChainToDefinition": { + "type": "string", + "description": "Control which side of the edge to chain to. This option is only applicable if the view referenced in the `from` field consists of edges.\n- `source` will chain to `start` if you're following edges outwards i.e `direction=outwards`. If you're following edges inwards i.e `direction=inwards`, it will chain to `end`.\n- `destination (default)` will chain to `end` if you're following edges outwards i.e `direction=outwards`. If you're following edges inwards i.e `direction=inwards`, it will chain to `start`.", + "enum": [ + "source", + "destination" ], - "properties": { - "avg": { + "default": "destination" + }, + "DataModelsBoolFilter": { + "title": "BoolFilter", + "description": "Build a new query by combining other queries, using boolean operators. We support the `and`, `or`, and\n`not` boolean operators.\n", + "type": "object", + "oneOf": [ + { "type": "object", + "title": "and", "required": [ - "property" + "and" ], "properties": { - "property": { - "type": "string", - "description": "The property who's data we use to calculate the average from. This property needs to be a defined-as-numerical property." + "and": { + "description": "All the sub-clauses in the query must return a matching item.", + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/FilterDefinition" + } } } - } - } - }, - "MaxAggregateFunctionV3": { - "type": "object", - "title": "max", - "description": "The function will calculate, and return, the highest - max - value for the property.", - "required": [ - "max" - ], - "properties": { - "max": { + }, + { "type": "object", + "title": "or", "required": [ - "property" + "or" ], "properties": { - "property": { - "type": "string", - "description": "The property who's data we use to generate the max value from. This property needs to be a defined-as-numerical property." + "or": { + "description": "One or more of the sub-clauses in the query must return a matching item.", + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/FilterDefinition" + } } } - } - } - }, - "MinAggregateFunctionV3": { - "type": "object", - "title": "min", - "description": "The function will calculate, and return, the lowest - min - value for a property.", - "required": [ - "min" - ], - "properties": { - "min": { + }, + { "type": "object", + "title": "not", "required": [ - "property" + "not" ], "properties": { - "property": { - "type": "string", - "description": "The property who's data we use to generate the min value from. This property needs to be a defined-as-numerical property." + "not": { + "title": "Filter DSL", + "description": "None of the sub-clauses in the query can return a matching item.", + "type": "object", + "allOf": [ + { + "$ref": "#/components/schemas/FilterDefinition" + } + ] } } } - } + ] }, - "HistogramAggregateFunctionV3": { + "TableExpressionDataModelsBoolFilter": { + "title": "BoolFilter", + "description": "Build a new query by combining other queries, using boolean operators. We support the `and`, `or`, and\n`not` boolean operators.\n", "type": "object", - "title": "histogram", - "description": "A histogram aggregator function. This function will generate a histogram from the values of the specified property. It uses the specified interval as defined in your `interval` argument.", - "required": [ - "histogram" - ], - "properties": { - "histogram": { + "oneOf": [ + { "type": "object", + "title": "and", "required": [ - "property", - "interval" + "and" ], "properties": { - "property": { - "type": "string", - "description": "The property who's data we use to generate the histogram. This property needs to be a defined-as-numerical property." - }, - "interval": { - "type": "number", - "description": "The interval between each bucket." + "and": { + "description": "All the sub-clauses in the query must return a matching item.", + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/TableExpressionFilterDefinition" + } } } - } - } - }, - "SumAggregateFunctionV3": { - "type": "object", - "title": "sum", - "description": "Calculates the sum from the values of the specified property.", - "required": [ - "sum" - ], - "properties": { - "sum": { + }, + { "type": "object", + "title": "or", "required": [ - "property" + "or" ], "properties": { - "property": { - "type": "string", - "description": "The property who's data we use to calculate the sum of. This property needs to be a defined-as-numerical property." + "or": { + "description": "One or more of the sub-clauses in the query must return a matching item.", + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/TableExpressionFilterDefinition" + } } } - } - } - }, - "SyncTableExpressionV3": { - "oneOf": [ - { - "$ref": "#/components/schemas/SyncNodeTableExpressionV3" }, { - "$ref": "#/components/schemas/SyncEdgeTableExpressionV3" - } - ] - }, - "SyncNodeTableExpressionV3": { - "type": "object", - "required": [ - "nodes" - ], - "description": "The synchronization query to use when we listen for changes to nodes. The nodes must also match the specified filter.", - "properties": { - "limit": { - "$ref": "#/components/schemas/TableExpressionSyncLimit" - }, - "nodes": { "type": "object", + "title": "not", + "required": [ + "not" + ], "properties": { - "from": { - "description": "Chain your result expression from the specified view, or container.", - "type": "string" - }, - "chainTo": { - "$ref": "#/components/schemas/TableExpressionChainToDefinition" - }, - "through": { - "$ref": "#/components/schemas/NodeTableExpressionThrough" - }, - "direction": { - "description": "The direction to use when traversing direct relations. Only applicable when `through` is specified.", - "type": "string", - "default": "inwards", - "enum": [ - "outwards", - "inwards" + "not": { + "title": "Filter DSL", + "description": "None of the sub-clauses in the query can return a matching item.", + "type": "object", + "allOf": [ + { + "$ref": "#/components/schemas/TableExpressionFilterDefinition" + } ] - }, - "filter": { - "$ref": "#/components/schemas/TableExpressionFilterDefinition" } } } - } + ] }, - "NodeTableExpressionThrough": { - "description": "The view or container property to use when we traverse direct relations. Has to reference a direct relation property. Only applicable when `from` is specified.", + "DataModelsLeafFilter": { + "description": "Leaf filter", + "title": "LeafFilter", + "type": "object", "oneOf": [ { - "$ref": "#/components/schemas/ViewPropertyReference" + "$ref": "#/components/schemas/EqualsFilterV3" }, { - "$ref": "#/components/schemas/ThroughReference" - } - ] - }, - "SyncEdgeTableExpressionV3": { - "type": "object", - "required": [ - "edges" - ], - "description": "The synchronization query to use when we listen for changes to edges. The edges must also match the specified filter.", - "properties": { - "limit": { - "$ref": "#/components/schemas/TableExpressionSyncLimit" + "$ref": "#/components/schemas/InFilterV3" }, - "edges": { - "type": "object", - "properties": { - "from": { - "description": "Chain your result expression from this query.", - "type": "string" - }, - "chainTo": { - "$ref": "#/components/schemas/TableExpressionChainToDefinition" - }, - "maxDistance": { - "description": "The largest - max - number of levels to traverse when resolving the query.", - "type": "integer" - }, - "direction": { - "description": "The direction to use when traversing.", - "type": "string", - "enum": [ - "outwards", - "inwards" - ] - }, - "filter": { - "$ref": "#/components/schemas/TableExpressionFilterDefinition" - }, - "nodeFilter": { - "$ref": "#/components/schemas/TableExpressionFilterDefinition" - }, - "terminationFilter": { - "$ref": "#/components/schemas/TableExpressionFilterDefinition" - } - } - } - } - }, - "QueryTableExpressionV3": { - "oneOf": [ { - "$ref": "#/components/schemas/QueryNodeTableExpressionV3" + "$ref": "#/components/schemas/RangeFilterV3" }, { - "$ref": "#/components/schemas/QueryEdgeTableExpressionV3" + "$ref": "#/components/schemas/PrefixFilterV3" }, { - "$ref": "#/components/schemas/QuerySetOperationTableExpressionV3" - } - ], - "type": "object" - }, - "QueryNodeTableExpressionV3": { - "type": "object", - "required": [ - "nodes" - ], - "properties": { - "sort": { - "type": "array", - "maxItems": 5, - "items": { - "$ref": "#/components/schemas/PropertySortV3" - } + "$ref": "#/components/schemas/DMSExistsFilter" }, - "limit": { - "$ref": "#/components/schemas/TableExpressionQueryLimit" + { + "$ref": "#/components/schemas/ContainsAnyFilterV3" }, - "nodes": { - "type": "object", - "properties": { - "from": { - "description": "Chain your result-expression based on this view.", - "type": "string" - }, - "chainTo": { - "$ref": "#/components/schemas/TableExpressionChainToDefinition" - }, - "through": { - "$ref": "#/components/schemas/NodeTableExpressionThrough" - }, - "direction": { - "description": "The direction to use when traversing direct relations. Only applicable when `through` is specified.", - "type": "string", - "default": "inwards", - "enum": [ - "outwards", - "inwards" - ] - }, - "filter": { - "$ref": "#/components/schemas/TableExpressionFilterDefinition" - } - } + { + "$ref": "#/components/schemas/ContainsAllFilterV3" + }, + { + "$ref": "#/components/schemas/MatchAllFilter" + }, + { + "$ref": "#/components/schemas/DataModelsNestedFilter" + }, + { + "$ref": "#/components/schemas/OverlapsFilterV3" + }, + { + "$ref": "#/components/schemas/HasExistingDataFilterV3" } - } + ] }, - "QueryEdgeTableExpressionV3": { + "TableExpressionLeafFilter": { + "description": "Leaf filter", + "title": "LeafFilter", + "type": "object", + "oneOf": [ + { + "$ref": "#/components/schemas/TableExpressionEqualsFilterV3" + }, + { + "$ref": "#/components/schemas/TableExpressionInFilterV3" + }, + { + "$ref": "#/components/schemas/TableExpressionRangeFilterV3" + }, + { + "$ref": "#/components/schemas/TableExpressionPrefixFilterV3" + }, + { + "$ref": "#/components/schemas/DMSExistsFilter" + }, + { + "$ref": "#/components/schemas/TableExpressionContainsAnyFilterV3" + }, + { + "$ref": "#/components/schemas/TableExpressionContainsAllFilterV3" + }, + { + "$ref": "#/components/schemas/MatchAllFilter" + }, + { + "$ref": "#/components/schemas/DataModelsNestedFilter" + }, + { + "$ref": "#/components/schemas/TableExpressionOverlapsFilterV3" + }, + { + "$ref": "#/components/schemas/HasExistingDataFilterV3" + } + ] + }, + "NodeOrEdgeDeleteRequest": { "type": "object", "required": [ - "edges" + "items" ], "properties": { - "sort": { - "type": "array", - "maxItems": 5, - "items": { - "$ref": "#/components/schemas/PropertySortV3" - } - }, - "postSort": { + "items": { "type": "array", - "maxItems": 5, + "minItems": 1, + "maxItems": 1000, "items": { - "$ref": "#/components/schemas/PropertySortV3" + "type": "object", + "required": [ + "instanceType", + "space", + "externalId" + ], + "properties": { + "instanceType": { + "description": "Is the item to delete a node, or an edge", + "type": "string", + "enum": [ + "node", + "edge" + ] + }, + "externalId": { + "description": "External id for the node or edge (item) you want to delete.", + "allOf": [ + { + "$ref": "#/components/schemas/NodeOrEdgeExternalId" + } + ] + }, + "space": { + "description": "Space that the described node or edge (item) belongs to.", + "allOf": [ + { + "$ref": "#/components/schemas/SpaceSpecification" + } + ] + } + } } - }, - "limit": { - "$ref": "#/components/schemas/TableExpressionQueryLimit" - }, - "edges": { + } + } + }, + "NodeOrEdgeListRequestV3": { + "allOf": [ + { "type": "object", "properties": { - "from": { - "description": "Chain your result expression from this edge.", - "type": "string" - }, - "chainTo": { - "$ref": "#/components/schemas/TableExpressionChainToDefinition" + "includeTyping": { + "$ref": "#/components/schemas/IncludeTyping" }, - "maxDistance": { - "description": "The largest - max - number of levels to traverse.", - "type": "integer" + "sources": { + "$ref": "#/components/schemas/SourceSelectorWithoutPropertiesV3" }, - "direction": { - "description": "The direction to use when traversing.", - "type": "string", - "default": "outwards", - "enum": [ - "outwards", - "inwards" + "instanceType": { + "description": "The type of instance you are querying for; an edge or a node. If the instance type isn't specified, we list nodes. When instanceType is `edge`, `property` can refer to any container and is defined as [\"edge\", \"type\"], and `value` contains the value of the property.\n\n Example:\n\n ```\n {\n “includeTyping”: true,\n “instanceType”: \"edge\",\n “filter”: {\n “equals”: {\n \"property\": [\n \"edge\",\n \"type\" // VALID VALUES:[space, externalId, createdTime, lastUpdatedTime, startNode, endNode, type ]\n ],\n \"value\": {\n \"space\": \"apm_simple\",\n \"externalId\": \"WMT:23-FO-96187\"\n }\n }\n }\n }\n ```", + "default": "node", + "allOf": [ + { + "$ref": "#/components/schemas/InstanceType" + } ] - }, + } + } + }, + { + "$ref": "#/components/schemas/Cursor" + }, + { + "$ref": "#/components/schemas/LimitWithDefault1000" + }, + { + "$ref": "#/components/schemas/SortV3" + }, + { + "type": "object", + "properties": { "filter": { - "$ref": "#/components/schemas/TableExpressionFilterDefinition" - }, - "nodeFilter": { - "$ref": "#/components/schemas/TableExpressionFilterDefinition" - }, - "terminationFilter": { - "$ref": "#/components/schemas/TableExpressionFilterDefinition" - }, - "limitEach": { - "type": "integer", - "description": "Limit the number of returned edges for each of the source nodes in the result set. The indicated uniform limit applies to the result set from the referenced `from`. `limitEach` only has meaning when you also specify `maxDistance=1` and `from`.", - "minimum": 1, - "maximum": 2000 + "$ref": "#/components/schemas/FilterDefinition" } } } - } + ] }, - "QuerySetOperationTableExpressionV3": { - "oneOf": [ + "DataModelsListRequest": { + "allOf": [ { - "$ref": "#/components/schemas/QueryUnionAllTableExpressionV3" + "$ref": "#/components/schemas/Cursor" }, { - "$ref": "#/components/schemas/QueryUnionTableExpressionV3" + "$ref": "#/components/schemas/ReducedLimit" }, { - "$ref": "#/components/schemas/QueryIntersectionTableExpressionV3" + "type": "object", + "properties": { + "spaces": { + "type": "array", + "description": "List of spaces you want to use to limit the returned matches by", + "items": { + "$ref": "#/components/schemas/SpaceSpecification" + } + }, + "allVersions": { + "$ref": "#/components/schemas/AllVersionsFlag" + }, + "includeGlobal": { + "$ref": "#/components/schemas/IncludeGlobalFlag" + } + } } - ], - "type": "object" + ] }, - "QueryUnionAllTableExpressionV3": { + "DataModelsSort": { "type": "object", - "description": "Return the union of the specified result sets. We will remove the results that match the optional exception \nresult sets. Note: The operation may return duplicate results since we do not perform deduplication.\n", "required": [ - "unionAll" + "property" ], "properties": { - "unionAll": { - "type": "array", - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/QuerySetOperationTableExpressionV3" - }, - { - "type": "string" - } - ] - } + "property": { + "description": "The property we should base sorting on when we return ordered data", + "type": "string", + "enum": [ + "space", + "externalId", + "name", + "description", + "version", + "createdTime", + "lastUpdatedTime" + ] }, - "except": { - "type": "array", - "items": { - "type": "string" - } + "direction": { + "description": "The sort order for the returned information", + "type": "string", + "default": "ascending", + "enum": [ + "ascending", + "descending" + ] }, - "limit": { - "$ref": "#/components/schemas/TableExpressionQueryLimit" + "nullsFirst": { + "description": "Should we list nulls first, or last (default) in the returned dataset", + "type": "boolean", + "default": false } } }, - "QueryUnionTableExpressionV3": { - "description": "Return the union of the specified result sets. We will remove the results that match the optional \nexception result sets. But this operation does not result in duplicate results as it performs \ndeduplication. \n\nNote: You should use the `unionAll` operation whenever possible. Using it enables a built-in optimization. \nI.e. `A unionAll B` with `limit: n` will execute set operation B, if and only if, A returns less than \nn records.\n", + "QueryRequest": { "type": "object", "required": [ - "union" + "with", + "select" ], "properties": { - "union": { - "type": "array", - "items": { - "oneOf": [ + "with": { + "type": "object", + "minProperties": 1, + "maxProperties": 50, + "additionalProperties": { + "x-additionalPropertiesName": "result-expression-name", + "allOf": [ { - "$ref": "#/components/schemas/QuerySetOperationTableExpressionV3" - }, + "$ref": "#/components/schemas/QueryTableExpressionV3" + } + ] + } + }, + "cursors": { + "description": "Cursors returned from the previous query request. These cursors match the result set expressions you specified in the ```with``` clause for the query.", + "type": "object", + "maxProperties": 50, + "additionalProperties": { + "x-additionalPropertiesName": "pagination cursor reference", + "allOf": [ { - "type": "string" + "$ref": "#/components/schemas/NextCursorV3" } ] } }, - "except": { - "type": "array", - "items": { - "type": "string" + "select": { + "type": "object", + "minProperties": 1, + "maxProperties": 50, + "additionalProperties": { + "x-additionalPropertiesName": "result-expression-name", + "allOf": [ + { + "$ref": "#/components/schemas/QuerySelectV3" + } + ] } }, - "limit": { - "$ref": "#/components/schemas/TableExpressionQueryLimit" + "parameters": { + "type": "object", + "description": "Values in filters can be parameterised. Parameters are provided as part of the query object, and referenced in the filter itself.", + "additionalProperties": { + "x-additionalPropertiesName": "parameter-identifier", + "allOf": [ + { + "$ref": "#/components/schemas/RawPropertyValueV3" + } + ] + } + }, + "includeTyping": { + "$ref": "#/components/schemas/IncludeTyping" } } }, - "QueryIntersectionTableExpressionV3": { + "SyncRequest": { "type": "object", - "description": "Find the common elements in the returned result set. Excludes the elements from the optional `except` result set.", "required": [ - "intersection" + "with", + "select" ], "properties": { - "intersection": { - "type": "array", - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/QuerySetOperationTableExpressionV3" - }, + "with": { + "type": "object", + "minProperties": 1, + "maxProperties": 50, + "additionalProperties": { + "$ref": "#/components/schemas/SyncTableExpressionV3" + } + }, + "cursors": { + "description": "Cursors returned from the previous sync request. These cursors match the result set expressions you specified in the ```with``` clause for the sync.", + "type": "object", + "maxProperties": 50, + "additionalProperties": { + "x-additionalPropertiesName": "sync cursor reference", + "allOf": [ { - "type": "string" + "$ref": "#/components/schemas/NextCursorV3" } ] } }, - "except": { - "type": "array", - "items": { - "type": "string" + "select": { + "minProperties": 1, + "maxProperties": 50, + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/SyncSelectV3" } }, - "limit": { - "$ref": "#/components/schemas/TableExpressionQueryLimit" + "parameters": { + "type": "object", + "description": "Parameters to return", + "additionalProperties": { + "x-additionalPropertiesName": "parameter-identifier", + "allOf": [ + { + "$ref": "#/components/schemas/RawPropertyValueV3" + } + ] + } + }, + "includeTyping": { + "$ref": "#/components/schemas/IncludeTyping" } } }, - "SortV3": { + "AggregationRequest": { + "allOf": [ + { + "$ref": "#/components/schemas/CommonAggregationRequest" + }, + { + "type": "object", + "required": [ + "view" + ], + "properties": { + "instanceType": { + "$ref": "#/components/schemas/InstanceType" + }, + "view": { + "$ref": "#/components/schemas/ViewReference" + }, + "targetUnits": { + "$ref": "#/components/schemas/TargetUnits" + }, + "includeTyping": { + "$ref": "#/components/schemas/IncludeTyping" + } + } + } + ] + }, + "AggregationRequestV2": { + "allOf": [ + { + "$ref": "#/components/schemas/CommonAggregationRequestV2" + }, + { + "type": "object", + "required": [ + "view" + ], + "properties": { + "view": { + "$ref": "#/components/schemas/ViewReference" + }, + "targetUnits": { + "$ref": "#/components/schemas/TargetUnits" + }, + "includeTyping": { + "$ref": "#/components/schemas/IncludeTyping" + } + } + } + ] + }, + "CommonAggregationRequest": { + "description": "Defines an aggregation request. This will let you group, and aggregate supported data types. The request supports filters, and allows optional search matching.", "type": "object", "properties": { - "sort": { + "query": { + "type": "string", + "description": "Optional query string. The API will parse the query string, and use it to match the text properties on elements to use for the aggregate(s)." + }, + "properties": { + "type": "array", + "minItems": 1, + "maxItems": 200, + "description": "Optional list (array) of properties you want to apply the query above to. If you do not list any properties, you search through text fields by default.", + "items": { + "type": "string" + } + }, + "limit": { + "type": "integer", + "description": "Limit the number of results returned. The default limit is currently at 100 items.", + "minimum": 1, + "maximum": 1000, + "default": 100 + }, + "aggregates": { "type": "array", "maxItems": 5, "items": { - "$ref": "#/components/schemas/PropertySortV3" + "$ref": "#/components/schemas/AggregationDefinition" + } + }, + "groupBy": { + "type": "array", + "description": "The selection of fields to group the results by when doing aggregations. You can specify up to 5 items\nto group by.\n\nWhen you do not specify any aggregates, the fields listed in the `groupBy` clause will return the unique\nvalues stored for each field.\n", + "minItems": 1, + "maxItems": 5, + "items": { + "type": "string" } + }, + "filter": { + "$ref": "#/components/schemas/FilterDefinition" } } }, - "PropertySortV3": { + "CommonAggregationRequestV2": { + "description": "Defines an aggregation request. This will let you aggregate supported data types. The request supports filters, and allows optional search matching.", "type": "object", "required": [ - "property" + "aggregates" ], "properties": { - "property": { - "$ref": "#/components/schemas/DMSFilterProperty" - }, - "direction": { + "query": { "type": "string", - "default": "ascending", - "enum": [ - "ascending", - "descending" - ] + "description": "Optional query string. The API will parse the query string, and use it to match the text properties on elements to use for the aggregate(s)." }, - "nullsFirst": { - "type": "boolean", - "default": false + "properties": { + "type": "array", + "minItems": 1, + "maxItems": 200, + "description": "Optional list (array) of properties you want to apply the query above to. If you do not list any properties, you search through text fields by default.", + "items": { + "type": "string" + } + }, + "aggregates": { + "$ref": "#/components/schemas/AggregatesDefinition" + }, + "filter": { + "$ref": "#/components/schemas/FilterDefinition" } } }, - "SearchSort": { + "AggregatesDefinition": { "type": "object", - "required": [ - "property" - ], - "properties": { - "property": { - "$ref": "#/components/schemas/DMSFilterProperty" - }, - "direction": { - "type": "string", - "default": "ascending", - "enum": [ - "ascending", - "descending" - ] - } - } - }, - "SourceSelectorWithoutPropertiesV3": { - "type": "array", - "description": "Retrieve properties from the listed - by reference - views. The node/edge must have data in all the sources defined in the list.", - "maxItems": 10, - "items": { + "title": "aggregatesDictionary", + "description": "A dictionary of requested aggregates with client defined names/identifiers.\n\nExample:\n\n```\n{\n \"my_aggr_1\": {\n \"min\": {\"property\": [\"room\", \"size\"]}\n },\n \"my_aggr_2\": {\n \"max\": {\"property\": [\"room\", \"size\"]}\n },\n}\n```", + "minProperties": 1, + "maxProperties": 5, + "uniqueItems": true, + "additionalProperties": { + "x-additionalPropertiesName": "aggregate-id", + "title": "aggregateDictionary", "type": "object", - "required": [ - "source" - ], - "properties": { - "source": { - "$ref": "#/components/schemas/ViewReference" + "description": "An aggregate. It's an aggregate identifier which map to an aggregator function, and some fields to use for the aggregator function.\nThe identifiers should match the next constraints:\n pattern: \"^[A-Za-z_][A-Za-z0-9_]*$\"\n maxLength: 1000\n minLength: 1", + "oneOf": [ + { + "$ref": "#/components/schemas/AvgAggregate" }, - "targetUnits": { - "$ref": "#/components/schemas/TargetUnits" - } - } - } - }, - "SourceSelectorV3": { - "type": "array", - "maxItems": 10, - "items": { - "type": "object", - "required": [ - "source", - "properties" - ], - "properties": { - "source": { - "$ref": "#/components/schemas/ViewReference" + { + "$ref": "#/components/schemas/CountAggregate" }, - "properties": { - "type": "array", - "description": "Properties to return for the specified view. Use \"*\" to return all properties.", - "items": { - "type": "string" - } + { + "$ref": "#/components/schemas/MinAggregate" }, - "targetUnits": { - "$ref": "#/components/schemas/TargetUnits" + { + "$ref": "#/components/schemas/MaxAggregate" + }, + { + "$ref": "#/components/schemas/SumAggregate" + }, + { + "$ref": "#/components/schemas/UniqueValuesAggregate" + }, + { + "$ref": "#/components/schemas/NumberHistogramAggregate" + } + ] + }, + "propertyNames": { + "pattern": "^[A-Za-z_][A-Za-z0-9_]*$", + "maxLength": 1000, + "minLength": 1 + }, + "example": { + "my_avg_aggregate1": { + "avg": { + "property": [ + "mySpace", + "myContainer", + "manufacturer" + ] } - } - } - }, - "TargetUnits": { - "type": "array", - "description": "Properties to convert to another unit. The API can only convert to another unit, if a unit has been defined as part of the type on the underlying container being queried.", - "maxItems": 10, - "minItems": 1, - "items": { - "$ref": "#/components/schemas/TargetUnit" - } - }, - "TargetUnit": { - "type": "object", - "description": "Describes a target unit for a property.", - "required": [ - "property", - "unit" - ], - "properties": { - "property": { - "type": "string" }, - "unit": { - "description": "The external id of the target unit or unit system to convert to.", - "oneOf": [ - { - "$ref": "#/components/schemas/UnitReference" - }, - { - "$ref": "#/components/schemas/UnitSystemReference" + "my_terms_aggregate2": { + "uniqueValues": { + "property": [ + "mySpace", + "myContainer", + "manufacturer" + ], + "aggregates": { + "my_sub_aggregate1": { + "min": { + "property": [ + "mySpace", + "myContainer", + "price" + ] + } + }, + "my_sub_aggregate2": { + "max": { + "property": [ + "mySpace", + "myContainer", + "price" + ] + } + }, + "my_sub_aggregate3": { + "uniqueValues": { + "property": [ + "mySpace", + "myContainer", + "region" + ] + } + } } - ] + } } } }, - "UnitReference": { + "AvgAggregate": { "type": "object", - "description": "Target unit reference.", + "title": "avg", "required": [ - "externalId" + "avg" ], "properties": { - "externalId": { - "$ref": "#/components/schemas/NodeOrEdgeExternalId" + "avg": { + "type": "object", + "description": "Calculates the average from the data stored by the specified property. This aggregation uses an average mean calculation, and not an integral mean.", + "required": [ + "property" + ], + "properties": { + "property": { + "$ref": "#/components/schemas/AggregatePropertyDms" + } + }, + "additionalProperties": false } - } + }, + "additionalProperties": false }, - "UnitSystemReference": { + "CountAggregate": { + "title": "count", "type": "object", - "description": "Target system to convert data to. Can be used instead of targetUnit to identify the unit to convert to.\n", "required": [ - "unitSystemName" + "count" ], - "example": "Default, SI, Imperial\n", - "properties": { - "unitSystemName": { - "type": "string" - } - } - }, - "QuerySelectV3": { - "type": "object", - "description": "Define which view to return properties for, and the properties to return. Up to 10 views can be specified per query.", - "properties": { - "sources": { - "$ref": "#/components/schemas/SourceSelectorV3" - }, - "sort": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PropertySortV3" - } - }, - "limit": { - "type": "integer" - } - } - }, - "SyncSelectV3": { - "type": "object", - "description": "Specify the container or view to return properties for. Also specify the properties for those containers/views to return. Up to 10 views can be specified.", "properties": { - "sources": { - "$ref": "#/components/schemas/SourceSelectorV3" - } - } - }, - "SourceReference": { - "description": "Reference to a view, or a container", - "oneOf": [ - { - "$ref": "#/components/schemas/ViewReference" - }, - { - "$ref": "#/components/schemas/ContainerReference" - } - ], - "discriminator": { - "propertyName": "type" - } - }, - "FilterValue": { - "oneOf": [ - { - "$ref": "#/components/schemas/RawPropertyValueV3" - }, - { - "$ref": "#/components/schemas/ReferencedPropertyValueV3" - } - ] - }, - "TableExpressionFilterValue": { - "oneOf": [ - { - "$ref": "#/components/schemas/RawPropertyValueV3" - }, - { - "$ref": "#/components/schemas/ParameterizedPropertyValueV3" - }, - { - "$ref": "#/components/schemas/ReferencedPropertyValueV3" - } - ] - }, - "FilterValueList": { - "oneOf": [ - { - "$ref": "#/components/schemas/RawPropertyValueListV3" - }, - { - "$ref": "#/components/schemas/ReferencedPropertyValueV3" - } - ] - }, - "TableExpressionFilterValueList": { - "oneOf": [ - { - "$ref": "#/components/schemas/RawPropertyValueListV3" - }, - { - "$ref": "#/components/schemas/ParameterizedPropertyValueV3" - }, - { - "$ref": "#/components/schemas/ReferencedPropertyValueV3" - } - ] - }, - "FilterValueRange": { - "oneOf": [ - { - "$ref": "#/components/schemas/RangeValue" - }, - { - "$ref": "#/components/schemas/ReferencedPropertyValueV3" - } - ] - }, - "TableExpressionFilterValueRange": { - "oneOf": [ - { - "$ref": "#/components/schemas/RangeValue" - }, - { - "$ref": "#/components/schemas/ParameterizedPropertyValueV3" - }, - { - "$ref": "#/components/schemas/ReferencedPropertyValueV3" + "count": { + "type": "object", + "description": "Counts the number of items. When you specify a property, it returns the number of non-null values for that property.", + "properties": { + "property": { + "$ref": "#/components/schemas/AggregatePropertyDms" + } + }, + "additionalProperties": false } - ] + }, + "additionalProperties": false }, - "DataModelsNestedFilter": { + "MinAggregate": { "type": "object", - "title": "nested", + "title": "min", "required": [ - "nested" + "min" ], "properties": { - "nested": { + "min": { + "type": "object", + "description": "The function will calculate, and return, the lowest - min - value for a property.", "required": [ - "scope", - "filter" + "property" ], - "description": "Use `nested` to apply the properties of the direct relation as the filter. `scope` specifies the direct \nrelation property you want use as the filtering property.\n\nExample:\n```\n {\n \"nested\": {\n \"scope\": [\"some\", \"direct_relation\", \"property\"],\n \"filter\": {\n \"equals\": {\n \"property\": [\"node\", \"name\"],\n \"value\": \"ACME\"\n }\n }\n }\n }\n```\n", - "type": "object", "properties": { - "scope": { - "type": "array", - "minItems": 1, - "maxItems": 3, - "items": { - "type": "string" - } - }, - "filter": { - "$ref": "#/components/schemas/FilterDefinition" + "property": { + "$ref": "#/components/schemas/AggregatePropertyDms" } - } + }, + "additionalProperties": false } - } + }, + "additionalProperties": false }, - "HasExistingDataFilterV3": { + "MaxAggregate": { "type": "object", - "title": "hasData", + "title": "max", "required": [ - "hasData" + "max" ], "properties": { - "hasData": { - "type": "array", - "description": "Matches items where data is present in the referenced views, or containers.", - "items": { - "$ref": "#/components/schemas/SourceReference" - } + "max": { + "type": "object", + "description": "The function will calculate, and return, the highest - max - value for the property.", + "required": [ + "property" + ], + "properties": { + "property": { + "$ref": "#/components/schemas/AggregatePropertyDms" + } + }, + "additionalProperties": false } - } + }, + "additionalProperties": false }, - "OverlapsFilterV3": { + "SumAggregate": { "type": "object", - "title": "overlaps", + "title": "sum", "required": [ - "overlaps" + "sum" ], "properties": { - "overlaps": { + "sum": { "type": "object", - "description": "Matches items where the range made up of the two properties overlap with the provided range.", + "description": "Calculates the sum from the values of the specified property.", "required": [ - "startProperty", - "endProperty" + "property" ], "properties": { - "startProperty": { - "$ref": "#/components/schemas/DMSFilterProperty" - }, - "endProperty": { - "$ref": "#/components/schemas/DMSFilterProperty" - }, - "gte": { - "$ref": "#/components/schemas/FilterValueRange" - }, - "gt": { - "$ref": "#/components/schemas/FilterValueRange" - }, - "lte": { - "$ref": "#/components/schemas/FilterValueRange" - }, - "lt": { - "$ref": "#/components/schemas/FilterValueRange" + "property": { + "$ref": "#/components/schemas/AggregatePropertyDms" } - } + }, + "additionalProperties": false } - } + }, + "additionalProperties": false }, - "TableExpressionOverlapsFilterV3": { + "UniqueValuesAggregate": { "type": "object", - "title": "overlaps", + "title": "uniqueValues", "required": [ - "overlaps" + "uniqueValues" ], "properties": { - "overlaps": { + "uniqueValues": { "type": "object", - "description": "Matches items where the range made up of the two properties overlap with the provided range.", + "description": "Request unique value buckets aggregate on of the specified property.\nEach bucket is defined by `values` array and has the number of the `values` occurrences.", "required": [ - "startProperty", - "endProperty" + "property" ], "properties": { - "startProperty": { - "$ref": "#/components/schemas/DMSFilterProperty" - }, - "endProperty": { - "$ref": "#/components/schemas/DMSFilterProperty" - }, - "gte": { - "$ref": "#/components/schemas/TableExpressionFilterValueRange" - }, - "gt": { - "$ref": "#/components/schemas/TableExpressionFilterValueRange" + "property": { + "$ref": "#/components/schemas/AggregatePropertyDms" }, - "lte": { - "$ref": "#/components/schemas/TableExpressionFilterValueRange" + "aggregates": { + "$ref": "#/components/schemas/AggregatesDefinition" }, - "lt": { - "$ref": "#/components/schemas/TableExpressionFilterValueRange" + "size": { + "type": "integer", + "description": "The number of top buckets returned. The default limit is 10 items.", + "minimum": 1, + "maximum": 2000, + "default": 10 } - } + }, + "additionalProperties": false } - } + }, + "additionalProperties": false }, - "EqualsFilterV3": { + "NumberHistogramAggregate": { "type": "object", - "title": "equals", + "title": "numberHistogram", "required": [ - "equals" + "numberHistogram" ], "properties": { - "equals": { + "numberHistogram": { + "type": "object", + "description": "A histogram aggregator function. This function will generate a histogram from the values of the specified\nproperty. It uses the specified interval as defined in your `interval` argument.", "required": [ "property", - "value" + "interval" ], - "description": "Matches items that contain the exact value in the provided property.", - "type": "object", "properties": { + "interval": { + "type": "number", + "description": "The interval between each bucket." + }, "property": { - "$ref": "#/components/schemas/DMSFilterProperty" + "$ref": "#/components/schemas/AggregatePropertyDms" }, - "value": { - "$ref": "#/components/schemas/FilterValue" + "aggregates": { + "$ref": "#/components/schemas/AggregatesDefinition" } + }, + "additionalProperties": false + } + }, + "additionalProperties": false + }, + "AggregatePropertyDms": { + "title": "property", + "description": "Property you want to aggregate. Use a list of strings to specify nested properties.\n\nExample:\n\nYou have the object\n```\n{\n \"room\": {\n \"id\": \"b53\"\n },\n \"roomId\": \"a23\"\n}\n```\n\nUse `[\"room\", \"id\"]` to return the value in the nested `id` property, which is a part of the `room` object.\n\nYou can also read the value(s) in the standalone property `roomId` with `[\"roomId\"]`.\n", + "type": "array", + "minItems": 1, + "maxItems": 3, + "items": { + "type": "string", + "minLength": 1, + "maxLength": 1000 + }, + "example": [ + "room", + "id" + ] + }, + "AggregatesResultDefinition": { + "type": "object", + "title": "aggregatesResultDictionary", + "description": "A dictionary of the results for the requested aggregates mapped by the aggregates identifiers.\n\nExample:\n\n```\n{\n \"my_aggr_1\": {\n \"avg\": 42\n },\n \"my_aggr_2\": {\n \"max\": 69\n },\n}\n```", + "additionalProperties": { + "x-additionalPropertiesName": "aggregate-id", + "type": "object", + "title": "aggregateResultDictionary", + "description": "Requested aggregate result. It's the aggregate identifier from the request and a set of fields to represent aggregated data.", + "oneOf": [ + { + "$ref": "#/components/schemas/AvgAggregateResult" + }, + { + "$ref": "#/components/schemas/CountAggregateResultDms" + }, + { + "$ref": "#/components/schemas/MinAggregateResult" + }, + { + "$ref": "#/components/schemas/MaxAggregateResult" + }, + { + "$ref": "#/components/schemas/SumAggregateResult" + }, + { + "$ref": "#/components/schemas/UniqueValuesAggregateResult" + }, + { + "$ref": "#/components/schemas/NumberHistogramAggregateResult" } + ] + }, + "example": { + "my_avg_aggregate1": { + "avg": 42 + }, + "my_terms_aggregate2": { + "buckets": [ + { + "value": "Cognite", + "count": 42, + "aggregates": { + "my_sub_aggregate1": { + "min": 13 + }, + "my_sub_aggregate2": { + "max": 69 + }, + "my_sub_aggregate3": { + "buckets": [ + { + "value": "us1", + "count": 42 + }, + { + "value": "ie1", + "count": 7 + } + ] + } + } + }, + { + "value": "AkerBP", + "count": 21, + "aggregates": { + "my_sub_aggregate1": { + "min": 99 + }, + "my_sub_aggregate2": { + "max": 999 + }, + "my_sub_aggregate3": { + "buckets": [ + { + "value": "us1", + "count": 11 + } + ] + } + } + } + ] } } }, - "TableExpressionEqualsFilterV3": { + "AvgAggregateResult": { "type": "object", - "title": "equals", + "title": "avgResult", "required": [ - "equals" + "avg" ], "properties": { - "equals": { - "required": [ - "property", - "value" - ], - "description": "Matches items that contain the exact value in the provided property.", - "type": "object", - "properties": { - "property": { - "$ref": "#/components/schemas/DMSFilterProperty" - }, - "value": { - "$ref": "#/components/schemas/TableExpressionFilterValue" - } - } + "avg": { + "type": "number", + "description": "The average value from the data stored by the specified in the request property.", + "example": 42.7 } } }, - "InFilterV3": { + "CountAggregateResultDms": { "type": "object", - "title": "in", + "title": "countResult", "required": [ - "in" + "count" ], "properties": { - "in": { - "required": [ - "property", - "values" - ], - "description": "Matches items where the property **exactly** matches one of the given values. You can only apply this filter to properties containing a single value.", - "type": "object", - "properties": { - "property": { - "$ref": "#/components/schemas/DMSFilterProperty" - }, - "values": { - "$ref": "#/components/schemas/FilterValueList" - } - } + "count": { + "type": "integer", + "format": "int64", + "description": "The number of non-null values for specified in the request property.", + "example": 42 } } }, - "TableExpressionInFilterV3": { + "MinAggregateResult": { "type": "object", - "title": "in", + "title": "minResult", "required": [ - "in" + "min" ], "properties": { - "in": { - "required": [ - "property", - "values" - ], - "description": "Matches items where the property **exactly** matches one of the given values. You can only apply this filter to properties containing a single value.", - "type": "object", - "properties": { - "property": { - "$ref": "#/components/schemas/DMSFilterProperty" - }, - "values": { - "$ref": "#/components/schemas/TableExpressionFilterValueList" - } - } + "min": { + "type": "number", + "description": "The lowest - min - value for the specified in the request property.", + "example": 42.7 } } }, - "RangeFilterV3": { + "MaxAggregateResult": { "type": "object", - "title": "range", + "title": "maxResult", "required": [ - "range" + "max" ], "properties": { - "range": { - "required": [ - "property" - ], - "description": "Matches items that contain terms within the provided range. \n\nThe range must include both an upper and a lower bound. It is not permitted to specify both inclusive \nand exclusive bounds together. E.g. `gte` and `gt`.\n\n `gte`: Greater than or equal to. \n `gt`: Greater than. \n `lte`: Less than or equal to. \n `lt`: Less than.\n", - "type": "object", - "properties": { - "property": { - "$ref": "#/components/schemas/DMSFilterProperty" - }, - "gte": { - "$ref": "#/components/schemas/FilterValueRange" - }, - "gt": { - "$ref": "#/components/schemas/FilterValueRange" - }, - "lte": { - "$ref": "#/components/schemas/FilterValueRange" - }, - "lt": { - "$ref": "#/components/schemas/FilterValueRange" - } - } + "max": { + "type": "number", + "description": "The highest - max - value for the specified in the request property.", + "example": 42.7 } } }, - "TableExpressionRangeFilterV3": { + "SumAggregateResult": { "type": "object", - "title": "range", + "title": "sumResult", "required": [ - "range" + "sum" ], "properties": { - "range": { - "required": [ - "property" - ], - "description": "Matches items that contain terms within the provided range.\n\nThe range must include both an upper and a lower bound. It is not permitted to specify both inclusive\nand exclusive bounds together. E.g. `gte` and `gt`.\n\n `gte`: Greater than or equal to.\n `gt`: Greater than.\n `lte`: Less than or equal to.\n `lt`: Less than.\n", - "type": "object", - "properties": { - "property": { - "$ref": "#/components/schemas/DMSFilterProperty" - }, - "gte": { - "$ref": "#/components/schemas/TableExpressionFilterValueRange" - }, - "gt": { - "$ref": "#/components/schemas/TableExpressionFilterValueRange" - }, - "lte": { - "$ref": "#/components/schemas/TableExpressionFilterValueRange" - }, - "lt": { - "$ref": "#/components/schemas/TableExpressionFilterValueRange" + "sum": { + "type": "number", + "description": "The sum from the values of the specified in the request property.", + "example": 42.7 + } + } + }, + "UniqueValuesAggregateResult": { + "type": "object", + "title": "uniqueValuesResult", + "properties": { + "buckets": { + "type": "array", + "description": "Unique value buckets on of the specified in the request property.", + "items": { + "type": "object", + "required": [ + "count", + "value" + ], + "properties": { + "count": { + "type": "integer", + "format": "int64", + "description": "The count of items with the value in the property.", + "example": 42 + }, + "value": { + "$ref": "#/components/schemas/AggregateValue" + }, + "aggregates": { + "$ref": "#/components/schemas/AggregatesResultDefinition" + } } } } } }, - "PrefixFilterV3": { + "NumberHistogramAggregateResult": { "type": "object", - "title": "prefix", - "required": [ - "prefix" - ], + "title": "numberHistogramResult", "properties": { - "prefix": { - "required": [ - "property", - "value" - ], - "description": "Matches items that have the prefix in the identified property. This filter is only supported for single value text properties.", - "type": "object", - "properties": { - "property": { - "$ref": "#/components/schemas/DMSFilterProperty" - }, - "value": { - "oneOf": [ - { - "type": "string" - }, - { - "$ref": "#/components/schemas/ParameterizedPropertyValueV3" - } - ] + "buckets": { + "type": "array", + "description": "The histogram from the values of the specified in the request property.", + "items": { + "type": "object", + "required": [ + "count", + "intervalStart" + ], + "properties": { + "count": { + "type": "integer", + "format": "int64", + "description": "The count of items with the value from the bucket interval in the property.", + "example": 100 + }, + "intervalStart": { + "type": "number", + "description": "The number which represent the start of the bucket interval (the next bucket start point is the end point for this bucket).", + "example": 42.7 + }, + "aggregates": { + "$ref": "#/components/schemas/AggregatesResultDefinition" + } } } } } }, - "TableExpressionPrefixFilterV3": { - "type": "object", - "title": "prefix", + "AggregateValue": { + "oneOf": [ + { + "type": "string", + "description": "A string which find in the provided property." + }, + { + "type": "number", + "description": "A number which find in the provided property." + }, + { + "type": "integer", + "format": "int64", + "description": "An integer number which find in the provided property." + }, + { + "type": "boolean", + "description": "A boolean value which find in the provided property." + } + ] + }, + "AggregatedResultItemCollection": { "required": [ - "prefix" + "items", + "properties" ], + "type": "object", "properties": { - "prefix": { - "required": [ - "property", - "value" - ], - "description": "Matches items that have the prefix in the identified property.", - "type": "object", - "properties": { - "property": { - "$ref": "#/components/schemas/DMSFilterProperty" - }, - "value": { - "$ref": "#/components/schemas/TableExpressionFilterValue" - } + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AggregatedResultItem" } } } }, - "ContainsAnyFilterV3": { + "AggregatedResultItem": { "type": "object", - "title": "containsAny", "required": [ - "containsAny" + "instanceType", + "aggregates" ], "properties": { - "containsAny": { - "required": [ - "property", - "values" - ], - "description": "Matches items where the property contains one or more of the given values. Only apply this filter to multivalued properties.", + "instanceType": { + "$ref": "#/components/schemas/InstanceType" + }, + "group": { "type": "object", - "properties": { - "property": { - "$ref": "#/components/schemas/DMSFilterProperty" - }, - "values": { - "$ref": "#/components/schemas/FilterValueList" - } + "additionalProperties": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "$ref": "#/components/schemas/DirectRelationReference" + } + ] + }, + "example": { + "name": "PumpName1", + "tag": "tag01" + } + }, + "aggregates": { + "type": "array", + "minItems": 1, + "maxItems": 5, + "items": { + "$ref": "#/components/schemas/AggregatedValueItem" } } } }, - "TableExpressionContainsAnyFilterV3": { + "AggregatedValueItem": { + "oneOf": [ + { + "$ref": "#/components/schemas/AggregatedNumberValue" + }, + { + "$ref": "#/components/schemas/AggregatedHistogramValue" + } + ] + }, + "AggregatedNumberValue": { "type": "object", - "title": "containsAny", "required": [ - "containsAny" + "aggregate" ], "properties": { - "containsAny": { - "required": [ - "property", - "values" - ], - "description": "Matches items where the property contains one or more of the given values. Only apply this filter to multivalued properties.", - "type": "object", - "properties": { - "property": { - "$ref": "#/components/schemas/DMSFilterProperty" - }, - "values": { - "$ref": "#/components/schemas/TableExpressionFilterValueList" - } - } + "aggregate": { + "type": "string", + "example": "avg", + "enum": [ + "avg", + "min", + "max", + "count", + "sum" + ] + }, + "property": { + "description": "The property the aggregate was calculated from", + "type": "string", + "example": "duration" + }, + "value": { + "type": "number", + "description": "Value returned by the aggregate function", + "example": 0.2 } } }, - "ContainsAllFilterV3": { + "AggregatedHistogramValue": { "type": "object", - "title": "containsAll", "required": [ - "containsAll" + "aggregate", + "interval", + "property", + "buckets" ], "properties": { - "containsAll": { - "required": [ - "property", - "values" - ], - "description": "Matches items where the property contains all the given values. Only apply this filter to multivalued properties.", - "type": "object", - "properties": { - "property": { - "$ref": "#/components/schemas/DMSFilterProperty" - }, - "values": { - "$ref": "#/components/schemas/FilterValueList" + "aggregate": { + "type": "string", + "enum": [ + "histogram" + ] + }, + "interval": { + "type": "number", + "example": 50 + }, + "property": { + "type": "string", + "example": "duration" + }, + "buckets": { + "type": "array", + "description": "List (array) of buckets to use for histogram aggregates.", + "items": { + "type": "object", + "required": [ + "start", + "count" + ], + "properties": { + "start": { + "description": "Start value for a histogram bucket", + "type": "number", + "example": 1050 + }, + "count": { + "description": "Number of items in the histogram bucket", + "type": "integer", + "example": 7 + } } } } } }, - "TableExpressionContainsAllFilterV3": { + "NodeOrEdgeSearchRequest": { + "description": "Searching nodes or edges using properties from a view", "type": "object", - "title": "containsAll", - "required": [ - "containsAll" - ], - "properties": { - "containsAll": { + "allOf": [ + { + "$ref": "#/components/schemas/SearchRequestV3" + } + ] + }, + "SearchRequestV3": { + "allOf": [ + { + "type": "object", "required": [ - "property", - "values" + "view" ], - "description": "Matches items where the property contains all the given values. Only apply this filter to multivalued properties.", - "type": "object", "properties": { - "property": { - "$ref": "#/components/schemas/DMSFilterProperty" + "view": { + "$ref": "#/components/schemas/ViewReference" }, - "values": { - "$ref": "#/components/schemas/TableExpressionFilterValueList" + "query": { + "type": "string", + "description": "Query string that will be parsed and used for search." + }, + "instanceType": { + "description": "Limit the search query to searching nodes or edges. Unless you set the item type to apply the search to, the service will default to searching nodes within the view.", + "allOf": [ + { + "$ref": "#/components/schemas/InstanceType" + } + ] + }, + "properties": { + "type": "array", + "description": "Optional array of properties you want to search through. If you do not specify one or more properties, the service will search all text fields within the view.", + "items": { + "type": "string" + } + }, + "targetUnits": { + "$ref": "#/components/schemas/TargetUnits" + }, + "filter": { + "$ref": "#/components/schemas/FilterDefinition" + }, + "includeTyping": { + "$ref": "#/components/schemas/IncludeTyping" + }, + "sort": { + "type": "array", + "maxItems": 5, + "items": { + "$ref": "#/components/schemas/SearchSort" + } } } + }, + { + "$ref": "#/components/schemas/LimitWithDefault1000" } - } + ] }, - "TypeInformationOuter": { + "ViewCreateCollection": { "type": "object", - "description": "Spaces for the requested view and containers", - "additionalProperties": { - "x-additionalPropertiesName": "space-name", - "allOf": [ - { - "$ref": "#/components/schemas/TypingViewOrContainer" + "required": [ + "items" + ], + "properties": { + "items": { + "type": "array", + "description": "List of views to create/update", + "minItems": 1, + "maxItems": 100, + "items": { + "$ref": "#/components/schemas/ViewCreateDefinition" } - ] + } } }, - "TypingViewOrContainer": { + "ContainerCreateCollection": { "type": "object", - "description": "View or container holding properties", - "additionalProperties": { - "x-additionalPropertiesName": "view-or-container-external-id", - "allOf": [ - { - "$ref": "#/components/schemas/TypeInformation" + "required": [ + "items" + ], + "properties": { + "items": { + "type": "array", + "description": "List of containers to create/update", + "minItems": 1, + "maxItems": 100, + "items": { + "$ref": "#/components/schemas/ContainerCreateDefinition" } - ] + } } }, - "TypeInformation": { + "DataModelCreateCollection": { "type": "object", - "description": "Type information for the returned properties (if requested)", - "additionalProperties": { - "x-additionalPropertiesName": "property-identifier", - "allOf": [ - { - "$ref": "#/components/schemas/TypePropertyDefinition" + "required": [ + "items" + ], + "properties": { + "items": { + "type": "array", + "description": "List of data models to create/update", + "minItems": 1, + "maxItems": 100, + "items": { + "$ref": "#/components/schemas/DataModelCreate" } - ] + } } }, - "DMSExternalId": { - "type": "string", - "pattern": "^[a-zA-Z]([a-zA-Z0-9_]{0,253}[a-zA-Z0-9])?$", - "minLength": 1, - "maxLength": 255 - }, - "NodeOrEdgeExternalId": { - "type": "string", - "pattern": "^[^\\\\x00]{1,256}$", - "minLength": 1, - "maxLength": 256 - }, - "DMSVersion": { - "type": "string", - "pattern": "^[a-zA-Z0-9]([.a-zA-Z0-9_-]{0,41}[a-zA-Z0-9])?$", - "minLength": 1, - "maxLength": 43 - }, - "PropertyIdentifierV3": { - "type": "string", - "pattern": "^[a-zA-Z]([a-zA-Z0-9_]{0,253}[a-zA-Z0-9])?$", - "minLength": 1, - "maxLength": 255 - }, - "DirectRelationReference": { + "NodeAndEdgeCreateCollection": { "type": "object", - "description": "Reference to the node pointed to by the direct relation. The reference consists of a space and an external-id.", "required": [ - "space", - "externalId" + "items" ], "properties": { - "space": { - "$ref": "#/components/schemas/SpaceSpecification" + "items": { + "type": "array", + "description": "List of nodes and edges to create/update", + "minItems": 1, + "maxItems": 1000, + "items": { + "$ref": "#/components/schemas/NodeOrEdgeCreate" + } }, - "externalId": { - "$ref": "#/components/schemas/NodeOrEdgeExternalId" + "autoCreateDirectRelations": { + "type": "boolean", + "description": "Should we create missing target nodes of direct relations? If the target-container constraint has been specified for a direct relation, the target node cannot be auto-created. If you want to point direct relations to a space where you have only read access, this option must be set to false.", + "default": true + }, + "autoCreateStartNodes": { + "type": "boolean", + "description": "Should we create missing start nodes for edges when ingesting? By default, the start node of an edge must exist before we can ingest the edge.", + "default": false + }, + "autoCreateEndNodes": { + "type": "boolean", + "default": false, + "description": "Should we create missing end nodes for edges when ingesting? By default, the end node of an edge must exist before we can ingest the edge." + }, + "skipOnVersionConflict": { + "type": "boolean", + "default": false, + "description": "If existingVersion is specified on any of the nodes/edges in the input, the default behaviour is that the entire ingestion will fail when version conflicts occur. If skipOnVersionConflict is set to true, items with version conflicts will be skipped instead. If no version is specified for nodes/edges, it will do the write directly." + }, + "replace": { + "type": "boolean", + "description": "How do we behave when a property value exists? Do we replace all matching and existing values with the supplied values (`true`)? Or should we merge in new values for properties together with the existing values (`false`)? Note: This setting applies for all nodes or edges specified in the ingestion call.", + "default": false } } }, - "LimitWithDefault1000": { + "NodeOrEdgeCreate": { + "oneOf": [ + { + "$ref": "#/components/schemas/NodeWrite" + }, + { + "$ref": "#/components/schemas/EdgeWrite" + } + ] + }, + "SpaceCreateCollection": { "type": "object", + "required": [ + "items" + ], "properties": { - "limit": { - "description": "Limits the number of results to return.", - "type": "integer", - "default": 1000, - "minimum": 1, - "maximum": 1000 + "items": { + "type": "array", + "description": "List of spaces to create/update", + "minItems": 1, + "maxItems": 100, + "items": { + "$ref": "#/components/schemas/SpaceCreateDefinition" + } } } }, - "ReducedLimit": { + "SpaceCreateDefinition": { "type": "object", - "description": "Limits the number of results returned. The greatest number of results returned by the server is 1000. This is true even when you specify a higher limit.", + "required": [ + "space" + ], "properties": { - "limit": { - "type": "integer", - "default": 10, - "minimum": 1, - "maximum": 1000 + "space": { + "type": "string", + "description": "The Space identifier (id).\n\n\nNote that we have reserved the use of certain space ids. These reserved spaces are:\n * `space`\n * `cdf`\n * `dms`\n * `pg3`\n * `shared`\n * `system`\n * `node`\n * `edge`\n ", + "pattern": "(?!^(space|cdf|dms|pg3|shared|system|node|edge)$)(^[a-zA-Z][a-zA-Z0-9_-]{0,41}[a-zA-Z0-9]?$)", + "minLength": 1, + "maxLength": 43 + }, + "description": { + "type": "string", + "description": "Used to describe the space you're defining.", + "maxLength": 1024 + }, + "name": { + "type": "string", + "description": "Human-readable name for the space.", + "maxLength": 255 } } }, - "TableExpressionQueryLimit": { - "type": "integer", - "default": 100, - "minimum": 1, - "maximum": 10000, - "description": "Limits the number of instances in the result set generated by this table expression." + "SpaceDefinition": { + "allOf": [ + { + "$ref": "#/components/schemas/SpaceCreateDefinition" + }, + { + "type": "object", + "required": [ + "createdTime", + "lastUpdatedTime", + "isGlobal" + ], + "properties": { + "createdTime": { + "$ref": "#/components/schemas/EpochTimestamp" + }, + "lastUpdatedTime": { + "$ref": "#/components/schemas/EpochTimestamp" + }, + "isGlobal": { + "type": "boolean", + "description": "Is this a global space." + } + } + } + ] }, - "TableExpressionSyncLimit": { - "type": "integer", - "default": 100, - "minimum": 100, - "maximum": 2000, - "description": "Limits the number of instances in the result set generated by this table expression." + "UpsertConflict": { + "type": "object", + "required": [ + "error" + ], + "properties": { + "error": { + "type": "object", + "description": "Details about the error caused by the upsert/update.", + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "type": "integer", + "description": "The HTTP status code returned", + "format": "int32", + "example": 409 + }, + "message": { + "type": "string", + "description": "The error message returned from the service." + } + } + } + } }, - "SpaceSpecification": { - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9_-]{0,41}[a-zA-Z0-9]?$", - "minLength": 1, - "maxLength": 43 + "ListOfSpaceIdsRequest": { + "type": "object", + "required": [ + "items" + ], + "properties": { + "items": { + "type": "array", + "minItems": 1, + "maxItems": 100, + "items": { + "type": "object", + "required": [ + "space" + ], + "properties": { + "space": { + "description": "Ids for the spaces to perform operations on", + "allOf": [ + { + "$ref": "#/components/schemas/SpaceSpecification" + } + ] + } + } + } + } + } }, - "AllVersionsFlag": { - "type": "boolean", - "default": false, - "description": "If all versions of the entity should be returned. Defaults to false which returns the latest version, attributed to the newest 'createdTime' field" + "ListOfContainerSubObjectIdentifierRequest": { + "type": "object", + "required": [ + "items" + ], + "properties": { + "items": { + "type": "array", + "minItems": 1, + "maxItems": 10, + "items": { + "type": "object", + "required": [ + "space", + "containerExternalId", + "identifier" + ], + "properties": { + "space": { + "$ref": "#/components/schemas/SpaceSpecification" + }, + "containerExternalId": { + "description": "External ids for the requested items", + "allOf": [ + { + "$ref": "#/components/schemas/DMSExternalId" + } + ] + }, + "identifier": { + "type": "string" + } + } + } + } + } }, - "IncludeGlobalFlag": { - "type": "boolean", - "default": false, - "description": "If the global items of the entity should be returned. Defaults to false which excludes global items." + "ListOfSpaceExternalIdsRequest": { + "type": "object", + "required": [ + "items" + ], + "properties": { + "items": { + "type": "array", + "minItems": 1, + "maxItems": 100, + "items": { + "type": "object", + "required": [ + "space", + "externalId" + ], + "properties": { + "externalId": { + "description": "External ids for the requested items", + "allOf": [ + { + "$ref": "#/components/schemas/DMSExternalId" + } + ] + }, + "space": { + "$ref": "#/components/schemas/SpaceSpecification" + } + } + } + } + } }, - "TextProperty": { + "ListOfSpaceExternalIdsRequestWithTyping": { "type": "object", - "description": "Text type", "required": [ - "type" + "items" ], "properties": { - "type": { - "type": "string", - "enum": [ - "text" + "sources": { + "description": "The node/edge must have data in all the sources defined in the list", + "allOf": [ + { + "$ref": "#/components/schemas/SourceSelectorWithoutPropertiesV3" + } ] }, - "list": { - "type": "boolean", - "description": "Specifies that the data type is a list of values. The ordering of values is preserved.\n", - "default": false + "items": { + "type": "array", + "minItems": 1, + "maxItems": 1000, + "items": { + "type": "object", + "required": [ + "instanceType", + "space", + "externalId" + ], + "properties": { + "instanceType": { + "description": "The type of instance being returned, an edge or a node.", + "allOf": [ + { + "$ref": "#/components/schemas/InstanceType" + } + ] + }, + "externalId": { + "description": "External ids for the requested items", + "allOf": [ + { + "$ref": "#/components/schemas/NodeOrEdgeExternalId" + } + ] + }, + "space": { + "$ref": "#/components/schemas/SpaceSpecification" + } + } + } }, - "collation": { - "type": "string", - "description": "Collation - the set of language specific rules - used when sorting text fields", - "enum": [ - "ucs_basic", - "und", - "af", - "af-NA", - "af-ZA", - "agq", - "agq-CM", - "ak", - "ak-GH", - "am", - "am-ET", - "ar", - "ar-001", - "ar-AE", - "ar-BH", - "ar-DJ", - "ar-DZ", - "ar-EG", - "ar-EH", - "ar-ER", - "ar-IL", - "ar-IQ", - "ar-JO", - "ar-KM", - "ar-KW", - "ar-LB", - "ar-LY", - "ar-MA", - "ar-MR", - "ar-OM", - "ar-PS", - "ar-QA", - "ar-SA", - "ar-SD", - "ar-SO", - "ar-SS", - "ar-SY", - "ar-TD", - "ar-TN", - "ar-YE", - "as", - "as-IN", - "asa", - "asa-TZ", - "ast", - "ast-ES", - "az", - "az-Cyrl", - "az-Cyrl-AZ", - "az-Latn", - "az-Latn-AZ", - "bas", - "bas-CM", - "be", - "be-BY", - "bem", - "bem-ZM", - "bez", - "bez-TZ", - "bg", - "bg-BG", - "bm", - "bm-ML", - "bn", - "bn-BD", - "bn-IN", - "bo", - "bo-CN", - "bo-IN", - "br", - "br-FR", - "brx", - "brx-IN", - "bs", - "bs-Cyrl", - "bs-Cyrl-BA", - "bs-Latn", - "bs-Latn-BA", - "ca", - "ca-AD", - "ca-ES", - "ca-FR", - "ca-IT", - "ccp", - "ccp-BD", - "ccp-IN", - "ce", - "ce-RU", - "ceb", - "ceb-PH", - "cgg", - "cgg-UG", - "chr", - "chr-US", - "ckb", - "ckb-IQ", - "ckb-IR", - "cs", - "cs-CZ", - "cy", - "cy-GB", - "da", - "da-DK", - "da-GL", - "dav", - "dav-KE", - "de", - "de-AT", - "de-BE", - "de-CH", - "de-DE", - "de-IT", - "de-LI", - "de-LU", - "dje", - "dje-NE", - "dsb", - "dsb-DE", - "dua", - "dua-CM", - "dyo", - "dyo-SN", - "dz", - "dz-BT", - "ebu", - "ebu-KE", - "ee", - "ee-GH", - "ee-TG", - "el", - "el-CY", - "el-GR", - "en", - "en-001", - "en-150", - "en-AE", - "en-AG", - "en-AI", - "en-AS", - "en-AT", - "en-AU", - "en-BB", - "en-BE", - "en-BI", - "en-BM", - "en-BS", - "en-BW", - "en-BZ", - "en-CA", - "en-CC", - "en-CH", - "en-CK", - "en-CM", - "en-CX", - "en-CY", - "en-DE", - "en-DG", - "en-DK", - "en-DM", - "en-ER", - "en-FI", - "en-FJ", - "en-FK", - "en-FM", - "en-GB", - "en-GD", - "en-GG", - "en-GH", - "en-GI", - "en-GM", - "en-GU", - "en-GY", - "en-HK", - "en-IE", - "en-IL", - "en-IM", - "en-IN", - "en-IO", - "en-JE", - "en-JM", - "en-KE", - "en-KI", - "en-KN", - "en-KY", - "en-LC", - "en-LR", - "en-LS", - "en-MG", - "en-MH", - "en-MO", - "en-MP", - "en-MS", - "en-MT", - "en-MU", - "en-MW", - "en-MY", - "en-NA", - "en-NF", - "en-NG", - "en-NL", - "en-NR", - "en-NU", - "en-NZ", - "en-PG", - "en-PH", - "en-PK", - "en-PN", - "en-PR", - "en-PW", - "en-RW", - "en-SB", - "en-SC", - "en-SD", - "en-SE", - "en-SG", - "en-SH", - "en-SI", - "en-SL", - "en-SS", - "en-SX", - "en-SZ", - "en-TC", - "en-TK", - "en-TO", - "en-TT", - "en-TV", - "en-TZ", - "en-UG", - "en-UM", - "en-US", - "en-US-u-va-posix", - "en-VC", - "en-VG", - "en-VI", - "en-VU", - "en-WS", - "en-ZA", - "en-ZM", - "en-ZW", + "includeTyping": { + "$ref": "#/components/schemas/IncludeTyping" + } + } + }, + "InstanceInspectRequest": { + "type": "object", + "required": [ + "inspectionOperations", + "items" + ], + "properties": { + "inspectionOperations": { + "type": "object", + "properties": { + "involvedViews": { + "type": "object", + "properties": { + "allVersions": { + "type": "boolean", + "default": false + } + } + }, + "involvedContainers": { + "type": "object", + "properties": { + "allVersions": { + "type": "boolean", + "default": false + } + } + } + } + }, + "items": { + "type": "array", + "minItems": 1, + "maxItems": 1000, + "items": { + "type": "object", + "required": [ + "instanceType", + "space", + "externalId" + ], + "properties": { + "instanceType": { + "description": "The type of instance being returned, an edge or a node.", + "allOf": [ + { + "$ref": "#/components/schemas/InstanceType" + } + ] + }, + "externalId": { + "description": "External ids for the requested items", + "allOf": [ + { + "$ref": "#/components/schemas/NodeOrEdgeExternalId" + } + ] + }, + "space": { + "$ref": "#/components/schemas/SpaceSpecification" + } + } + } + } + } + }, + "InstanceInspectResultItem": { + "type": "object", + "required": [ + "instanceType", + "externalId", + "space", + "inspectionResults" + ], + "properties": { + "instanceType": { + "description": "The type of instance being returned, an edge or a node.", + "allOf": [ + { + "$ref": "#/components/schemas/InstanceType" + } + ] + }, + "externalId": { + "description": "External ids for the requested items", + "allOf": [ + { + "$ref": "#/components/schemas/NodeOrEdgeExternalId" + } + ] + }, + "space": { + "$ref": "#/components/schemas/SpaceSpecification" + }, + "inspectionResults": { + "type": "object", + "properties": { + "involvedViews": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ViewReference" + } + }, + "involvedContainers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ContainerReference" + } + } + } + } + } + }, + "ContainerInspectRequest": { + "type": "object", + "required": [ + "inspectionOperations", + "items" + ], + "properties": { + "inspectionOperations": { + "type": "object", + "properties": { + "involvedViews": { + "type": "object", + "properties": { + "allVersions": { + "type": "boolean", + "default": false + } + } + }, + "totalInvolvedViewCount": { + "type": "object", + "properties": { + "allVersions": { + "type": "boolean", + "default": false + }, + "includeUnavailableViews": { + "type": "boolean", + "default": true, + "description": "Whether or not to also count views which aren't available to the user. This is useful for understanding whether or not views/datamodels you don't have to access to will be affected by deleting/changing this container." + } + } + } + } + }, + "items": { + "type": "array", + "minItems": 1, + "maxItems": 10, + "items": { + "type": "object", + "required": [ + "space", + "externalId" + ], + "properties": { + "space": { + "$ref": "#/components/schemas/SpaceSpecification" + }, + "externalId": { + "description": "External id for the requested container", + "allOf": [ + { + "$ref": "#/components/schemas/DMSExternalId" + } + ] + } + } + } + } + } + }, + "ContainerInspectResultItem": { + "type": "object", + "required": [ + "externalId", + "space", + "inspectionResults" + ], + "properties": { + "externalId": { + "description": "External ids for the requested items", + "allOf": [ + { + "$ref": "#/components/schemas/DMSExternalId" + } + ] + }, + "space": { + "$ref": "#/components/schemas/SpaceSpecification" + }, + "inspectionResults": { + "type": "object", + "properties": { + "involvedViewCount": { + "description": "The total number of views mapping this container (including views you don't have access to)", + "type": "integer" + }, + "involvedViews": { + "type": "array", + "description": "The views you have access to which map this container.", + "items": { + "$ref": "#/components/schemas/ViewReference" + } + } + } + } + } + }, + "ListOfVersionReferences": { + "type": "object", + "required": [ + "items" + ], + "properties": { + "items": { + "type": "array", + "minItems": 1, + "maxItems": 100, + "items": { + "type": "object", + "required": [ + "space", + "externalId", + "version" + ], + "properties": { + "externalId": { + "description": "External id for the requested item", + "allOf": [ + { + "$ref": "#/components/schemas/DMSExternalId" + } + ] + }, + "space": { + "description": "Space id for the requested item", + "allOf": [ + { + "$ref": "#/components/schemas/SpaceSpecification" + } + ] + }, + "version": { + "description": "Version of the requested item", + "allOf": [ + { + "$ref": "#/components/schemas/DMSVersion" + } + ] + } + } + } + } + } + }, + "ListOfAllVersionsReferences": { + "type": "object", + "required": [ + "items" + ], + "properties": { + "items": { + "type": "array", + "minItems": 1, + "maxItems": 100, + "items": { + "type": "object", + "required": [ + "space", + "externalId" + ], + "properties": { + "externalId": { + "description": "External id for the requested item", + "allOf": [ + { + "$ref": "#/components/schemas/DMSExternalId" + } + ] + }, + "space": { + "description": "Space id for the requested item", + "allOf": [ + { + "$ref": "#/components/schemas/SpaceSpecification" + } + ] + } + } + } + } + } + }, + "NextCursorV3": { + "description": "The cursor value used to return (paginate to) the next page of results, when more data is available.", + "type": "string" + }, + "MultiNextCursorV3": { + "description": "Cursors to paginate to the next page of results. The cursor applies to each result set expression. We only provide a cursor when more data is available.", + "type": "object", + "properties": { + "additionalProperties": { + "x-additionalPropertiesName": "cursor-name", + "allOf": [ + { + "$ref": "#/components/schemas/NextCursorV3" + } + ] + } + } + }, + "AggregationDefinition": { + "type": "object", + "description": "An aggregate. It consists of a name, an aggregator function, and the field to use for the function.", + "oneOf": [ + { + "$ref": "#/components/schemas/AvgAggregateFunctionV3" + }, + { + "$ref": "#/components/schemas/CountAggregateFunctionV3" + }, + { + "$ref": "#/components/schemas/MinAggregateFunctionV3" + }, + { + "$ref": "#/components/schemas/MaxAggregateFunctionV3" + }, + { + "$ref": "#/components/schemas/SumAggregateFunctionV3" + }, + { + "$ref": "#/components/schemas/HistogramAggregateFunctionV3" + } + ] + }, + "CountAggregateFunctionV3": { + "title": "count", + "type": "object", + "description": "Counts the number of items. When you specify a property, it returns the number of non-null values for that property.", + "required": [ + "count" + ], + "properties": { + "count": { + "type": "object", + "properties": { + "property": { + "type": "string", + "description": "The property to count. If specified, counts all non-null values for the specified property." + } + } + } + } + }, + "AvgAggregateFunctionV3": { + "type": "object", + "title": "avg", + "description": "Calculates the average from the data stored by the specified property. This aggregation uses an average mean calculation, and not an integral mean.", + "required": [ + "avg" + ], + "properties": { + "avg": { + "type": "object", + "required": [ + "property" + ], + "properties": { + "property": { + "type": "string", + "description": "The property who's data we use to calculate the average from. This property needs to be a defined-as-numerical property." + } + } + } + } + }, + "MaxAggregateFunctionV3": { + "type": "object", + "title": "max", + "description": "The function will calculate, and return, the highest - max - value for the property.", + "required": [ + "max" + ], + "properties": { + "max": { + "type": "object", + "required": [ + "property" + ], + "properties": { + "property": { + "type": "string", + "description": "The property who's data we use to generate the max value from. This property needs to be a defined-as-numerical property." + } + } + } + } + }, + "MinAggregateFunctionV3": { + "type": "object", + "title": "min", + "description": "The function will calculate, and return, the lowest - min - value for a property.", + "required": [ + "min" + ], + "properties": { + "min": { + "type": "object", + "required": [ + "property" + ], + "properties": { + "property": { + "type": "string", + "description": "The property who's data we use to generate the min value from. This property needs to be a defined-as-numerical property." + } + } + } + } + }, + "HistogramAggregateFunctionV3": { + "type": "object", + "title": "histogram", + "description": "A histogram aggregator function. This function will generate a histogram from the values of the specified property. It uses the specified interval as defined in your `interval` argument.", + "required": [ + "histogram" + ], + "properties": { + "histogram": { + "type": "object", + "required": [ + "property", + "interval" + ], + "properties": { + "property": { + "type": "string", + "description": "The property who's data we use to generate the histogram. This property needs to be a defined-as-numerical property." + }, + "interval": { + "type": "number", + "description": "The interval between each bucket." + } + } + } + } + }, + "SumAggregateFunctionV3": { + "type": "object", + "title": "sum", + "description": "Calculates the sum from the values of the specified property.", + "required": [ + "sum" + ], + "properties": { + "sum": { + "type": "object", + "required": [ + "property" + ], + "properties": { + "property": { + "type": "string", + "description": "The property who's data we use to calculate the sum of. This property needs to be a defined-as-numerical property." + } + } + } + } + }, + "SyncTableExpressionV3": { + "oneOf": [ + { + "$ref": "#/components/schemas/SyncNodeTableExpressionV3" + }, + { + "$ref": "#/components/schemas/SyncEdgeTableExpressionV3" + } + ] + }, + "SyncNodeTableExpressionV3": { + "type": "object", + "required": [ + "nodes" + ], + "description": "The synchronization query to use when we listen for changes to nodes. The nodes must also match the specified filter.", + "properties": { + "limit": { + "$ref": "#/components/schemas/TableExpressionSyncLimit" + }, + "nodes": { + "type": "object", + "properties": { + "from": { + "description": "Chain your result expression from the specified view, or container.", + "type": "string" + }, + "chainTo": { + "$ref": "#/components/schemas/TableExpressionChainToDefinition" + }, + "through": { + "$ref": "#/components/schemas/NodeTableExpressionThrough" + }, + "direction": { + "description": "The direction to use when traversing direct relations. Only applicable when `through` is specified.", + "type": "string", + "default": "inwards", + "enum": [ + "outwards", + "inwards" + ] + }, + "filter": { + "$ref": "#/components/schemas/TableExpressionFilterDefinition" + } + } + } + } + }, + "NodeTableExpressionThrough": { + "description": "The view or container property to use when we traverse direct relations. Has to reference a direct relation property. Only applicable when `from` is specified.", + "oneOf": [ + { + "$ref": "#/components/schemas/ViewPropertyReference" + }, + { + "$ref": "#/components/schemas/ThroughReference" + } + ] + }, + "SyncEdgeTableExpressionV3": { + "type": "object", + "required": [ + "edges" + ], + "description": "The synchronization query to use when we listen for changes to edges. The edges must also match the specified filter.", + "properties": { + "limit": { + "$ref": "#/components/schemas/TableExpressionSyncLimit" + }, + "edges": { + "type": "object", + "properties": { + "from": { + "description": "Chain your result expression from this query.", + "type": "string" + }, + "chainTo": { + "$ref": "#/components/schemas/TableExpressionChainToDefinition" + }, + "maxDistance": { + "description": "The largest - max - number of levels to traverse when resolving the query.", + "type": "integer" + }, + "direction": { + "description": "The direction to use when traversing.", + "type": "string", + "enum": [ + "outwards", + "inwards" + ] + }, + "filter": { + "$ref": "#/components/schemas/TableExpressionFilterDefinition" + }, + "nodeFilter": { + "$ref": "#/components/schemas/TableExpressionFilterDefinition" + }, + "terminationFilter": { + "$ref": "#/components/schemas/TableExpressionFilterDefinition" + } + } + } + } + }, + "QueryTableExpressionV3": { + "oneOf": [ + { + "$ref": "#/components/schemas/QueryNodeTableExpressionV3" + }, + { + "$ref": "#/components/schemas/QueryEdgeTableExpressionV3" + }, + { + "$ref": "#/components/schemas/QuerySetOperationTableExpressionV3" + } + ], + "type": "object" + }, + "QueryNodeTableExpressionV3": { + "type": "object", + "required": [ + "nodes" + ], + "properties": { + "sort": { + "type": "array", + "maxItems": 5, + "items": { + "$ref": "#/components/schemas/PropertySortV3" + } + }, + "limit": { + "$ref": "#/components/schemas/TableExpressionQueryLimit" + }, + "nodes": { + "type": "object", + "properties": { + "from": { + "description": "Chain your result-expression based on this view.", + "type": "string" + }, + "chainTo": { + "$ref": "#/components/schemas/TableExpressionChainToDefinition" + }, + "through": { + "$ref": "#/components/schemas/NodeTableExpressionThrough" + }, + "direction": { + "description": "The direction to use when traversing direct relations. Only applicable when `through` is specified.", + "type": "string", + "default": "inwards", + "enum": [ + "outwards", + "inwards" + ] + }, + "filter": { + "$ref": "#/components/schemas/TableExpressionFilterDefinition" + } + } + } + } + }, + "QueryEdgeTableExpressionV3": { + "type": "object", + "required": [ + "edges" + ], + "properties": { + "sort": { + "type": "array", + "maxItems": 5, + "items": { + "$ref": "#/components/schemas/PropertySortV3" + } + }, + "postSort": { + "type": "array", + "maxItems": 5, + "items": { + "$ref": "#/components/schemas/PropertySortV3" + } + }, + "limit": { + "$ref": "#/components/schemas/TableExpressionQueryLimit" + }, + "edges": { + "type": "object", + "properties": { + "from": { + "description": "Chain your result expression from this edge.", + "type": "string" + }, + "chainTo": { + "$ref": "#/components/schemas/TableExpressionChainToDefinition" + }, + "maxDistance": { + "description": "The largest - max - number of levels to traverse.", + "type": "integer" + }, + "direction": { + "description": "The direction to use when traversing.", + "type": "string", + "default": "outwards", + "enum": [ + "outwards", + "inwards" + ] + }, + "filter": { + "$ref": "#/components/schemas/TableExpressionFilterDefinition" + }, + "nodeFilter": { + "$ref": "#/components/schemas/TableExpressionFilterDefinition" + }, + "terminationFilter": { + "$ref": "#/components/schemas/TableExpressionFilterDefinition" + }, + "limitEach": { + "type": "integer", + "description": "Limit the number of returned edges for each of the source nodes in the result set. The indicated uniform limit applies to the result set from the referenced `from`. `limitEach` only has meaning when you also specify `maxDistance=1` and `from`.", + "minimum": 1, + "maximum": 2000 + } + } + } + } + }, + "QuerySetOperationTableExpressionV3": { + "oneOf": [ + { + "$ref": "#/components/schemas/QueryUnionAllTableExpressionV3" + }, + { + "$ref": "#/components/schemas/QueryUnionTableExpressionV3" + }, + { + "$ref": "#/components/schemas/QueryIntersectionTableExpressionV3" + } + ], + "type": "object" + }, + "QueryUnionAllTableExpressionV3": { + "type": "object", + "description": "Return the union of the specified result sets. We will remove the results that match the optional exception\nresult sets. Note: The operation may return duplicate results since we do not perform deduplication.\n", + "required": [ + "unionAll" + ], + "properties": { + "unionAll": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/QuerySetOperationTableExpressionV3" + }, + { + "type": "string" + } + ] + } + }, + "except": { + "type": "array", + "items": { + "type": "string" + } + }, + "limit": { + "$ref": "#/components/schemas/TableExpressionQueryLimit" + } + } + }, + "QueryUnionTableExpressionV3": { + "description": "Return the union of the specified result sets. We will remove the results that match the optional\nexception result sets. But this operation does not result in duplicate results as it performs\ndeduplication.\n\nNote: You should use the `unionAll` operation whenever possible. Using it enables a built-in optimization.\nI.e. `A unionAll B` with `limit: n` will execute set operation B, if and only if, A returns less than\nn records.\n", + "type": "object", + "required": [ + "union" + ], + "properties": { + "union": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/QuerySetOperationTableExpressionV3" + }, + { + "type": "string" + } + ] + } + }, + "except": { + "type": "array", + "items": { + "type": "string" + } + }, + "limit": { + "$ref": "#/components/schemas/TableExpressionQueryLimit" + } + } + }, + "QueryIntersectionTableExpressionV3": { + "type": "object", + "description": "Find the common elements in the returned result set. Excludes the elements from the optional `except` result set.", + "required": [ + "intersection" + ], + "properties": { + "intersection": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/QuerySetOperationTableExpressionV3" + }, + { + "type": "string" + } + ] + } + }, + "except": { + "type": "array", + "items": { + "type": "string" + } + }, + "limit": { + "$ref": "#/components/schemas/TableExpressionQueryLimit" + } + } + }, + "SortV3": { + "type": "object", + "properties": { + "sort": { + "type": "array", + "maxItems": 5, + "items": { + "$ref": "#/components/schemas/PropertySortV3" + } + } + } + }, + "PropertySortV3": { + "type": "object", + "required": [ + "property" + ], + "properties": { + "property": { + "$ref": "#/components/schemas/DMSFilterProperty" + }, + "direction": { + "type": "string", + "default": "ascending", + "enum": [ + "ascending", + "descending" + ] + }, + "nullsFirst": { + "type": "boolean", + "default": false + } + } + }, + "SearchSort": { + "type": "object", + "required": [ + "property" + ], + "properties": { + "property": { + "$ref": "#/components/schemas/DMSFilterProperty" + }, + "direction": { + "type": "string", + "default": "ascending", + "enum": [ + "ascending", + "descending" + ] + } + } + }, + "SourceSelectorWithoutPropertiesV3": { + "type": "array", + "description": "Retrieve properties from the listed - by reference - views. The node/edge must have data in all the sources defined in the list.", + "maxItems": 10, + "items": { + "type": "object", + "required": [ + "source" + ], + "properties": { + "source": { + "$ref": "#/components/schemas/ViewReference" + }, + "targetUnits": { + "$ref": "#/components/schemas/TargetUnits" + } + } + } + }, + "SourceSelectorV3": { + "type": "array", + "maxItems": 10, + "items": { + "type": "object", + "required": [ + "source", + "properties" + ], + "properties": { + "source": { + "$ref": "#/components/schemas/ViewReference" + }, + "properties": { + "type": "array", + "description": "Properties to return for the specified view. Use \"*\" to return all properties.", + "items": { + "type": "string" + } + }, + "targetUnits": { + "$ref": "#/components/schemas/TargetUnits" + } + } + } + }, + "TargetUnits": { + "type": "array", + "description": "Properties to convert to another unit. The API can only convert to another unit, if a unit has been defined as part of the type on the underlying container being queried.", + "maxItems": 10, + "minItems": 1, + "items": { + "$ref": "#/components/schemas/TargetUnit" + } + }, + "TargetUnit": { + "type": "object", + "description": "Describes a target unit for a property.", + "required": [ + "property", + "unit" + ], + "properties": { + "property": { + "type": "string" + }, + "unit": { + "description": "The external id of the target unit or unit system to convert to.", + "oneOf": [ + { + "$ref": "#/components/schemas/UnitReference" + }, + { + "$ref": "#/components/schemas/UnitSystemReference" + } + ] + } + } + }, + "UnitReference": { + "type": "object", + "description": "Target unit reference.", + "required": [ + "externalId" + ], + "properties": { + "externalId": { + "$ref": "#/components/schemas/NodeOrEdgeExternalId" + } + } + }, + "UnitSystemReference": { + "type": "object", + "description": "Target system to convert data to. Can be used instead of targetUnit to identify the unit to convert to.\n", + "required": [ + "unitSystemName" + ], + "example": "Default, SI, Imperial\n", + "properties": { + "unitSystemName": { + "type": "string" + } + } + }, + "QuerySelectV3": { + "type": "object", + "description": "Define which view to return properties for, and the properties to return. Up to 10 views can be specified per query.", + "properties": { + "sources": { + "$ref": "#/components/schemas/SourceSelectorV3" + }, + "sort": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PropertySortV3" + } + }, + "limit": { + "type": "integer" + } + } + }, + "SyncSelectV3": { + "type": "object", + "description": "Specify the container or view to return properties for. Also specify the properties for those containers/views to return. Up to 10 views can be specified.", + "properties": { + "sources": { + "$ref": "#/components/schemas/SourceSelectorV3" + } + } + }, + "SourceReference": { + "description": "Reference to a view, or a container", + "oneOf": [ + { + "$ref": "#/components/schemas/ViewReference" + }, + { + "$ref": "#/components/schemas/ContainerReference" + } + ], + "discriminator": { + "propertyName": "type" + } + }, + "FilterValue": { + "oneOf": [ + { + "$ref": "#/components/schemas/RawPropertyValueV3" + }, + { + "$ref": "#/components/schemas/ReferencedPropertyValueV3" + } + ] + }, + "TableExpressionFilterValue": { + "oneOf": [ + { + "$ref": "#/components/schemas/RawPropertyValueV3" + }, + { + "$ref": "#/components/schemas/ParameterizedPropertyValueV3" + }, + { + "$ref": "#/components/schemas/ReferencedPropertyValueV3" + } + ] + }, + "FilterValueList": { + "oneOf": [ + { + "$ref": "#/components/schemas/RawPropertyValueListV3" + }, + { + "$ref": "#/components/schemas/ReferencedPropertyValueV3" + } + ] + }, + "TableExpressionFilterValueList": { + "oneOf": [ + { + "$ref": "#/components/schemas/RawPropertyValueListV3" + }, + { + "$ref": "#/components/schemas/ParameterizedPropertyValueV3" + }, + { + "$ref": "#/components/schemas/ReferencedPropertyValueV3" + } + ] + }, + "FilterValueRange": { + "oneOf": [ + { + "$ref": "#/components/schemas/RangeValue" + }, + { + "$ref": "#/components/schemas/ReferencedPropertyValueV3" + } + ] + }, + "TableExpressionFilterValueRange": { + "oneOf": [ + { + "$ref": "#/components/schemas/RangeValue" + }, + { + "$ref": "#/components/schemas/ParameterizedPropertyValueV3" + }, + { + "$ref": "#/components/schemas/ReferencedPropertyValueV3" + } + ] + }, + "DataModelsNestedFilter": { + "type": "object", + "title": "nested", + "required": [ + "nested" + ], + "properties": { + "nested": { + "required": [ + "scope", + "filter" + ], + "description": "Use `nested` to apply the properties of the direct relation as the filter. `scope` specifies the direct\nrelation property you want use as the filtering property.\n\nExample:\n```\n {\n \"nested\": {\n \"scope\": [\"some\", \"direct_relation\", \"property\"],\n \"filter\": {\n \"equals\": {\n \"property\": [\"node\", \"name\"],\n \"value\": \"ACME\"\n }\n }\n }\n }\n```\n", + "type": "object", + "properties": { + "scope": { + "type": "array", + "minItems": 1, + "maxItems": 3, + "items": { + "type": "string" + } + }, + "filter": { + "$ref": "#/components/schemas/FilterDefinition" + } + } + } + } + }, + "HasExistingDataFilterV3": { + "type": "object", + "title": "hasData", + "required": [ + "hasData" + ], + "properties": { + "hasData": { + "type": "array", + "description": "Matches items where data is present in the referenced views, or containers.", + "items": { + "$ref": "#/components/schemas/SourceReference" + } + } + } + }, + "OverlapsFilterV3": { + "type": "object", + "title": "overlaps", + "required": [ + "overlaps" + ], + "properties": { + "overlaps": { + "type": "object", + "description": "Matches items where the range made up of the two properties overlap with the provided range.", + "required": [ + "startProperty", + "endProperty" + ], + "properties": { + "startProperty": { + "$ref": "#/components/schemas/DMSFilterProperty" + }, + "endProperty": { + "$ref": "#/components/schemas/DMSFilterProperty" + }, + "gte": { + "$ref": "#/components/schemas/FilterValueRange" + }, + "gt": { + "$ref": "#/components/schemas/FilterValueRange" + }, + "lte": { + "$ref": "#/components/schemas/FilterValueRange" + }, + "lt": { + "$ref": "#/components/schemas/FilterValueRange" + } + } + } + } + }, + "TableExpressionOverlapsFilterV3": { + "type": "object", + "title": "overlaps", + "required": [ + "overlaps" + ], + "properties": { + "overlaps": { + "type": "object", + "description": "Matches items where the range made up of the two properties overlap with the provided range.", + "required": [ + "startProperty", + "endProperty" + ], + "properties": { + "startProperty": { + "$ref": "#/components/schemas/DMSFilterProperty" + }, + "endProperty": { + "$ref": "#/components/schemas/DMSFilterProperty" + }, + "gte": { + "$ref": "#/components/schemas/TableExpressionFilterValueRange" + }, + "gt": { + "$ref": "#/components/schemas/TableExpressionFilterValueRange" + }, + "lte": { + "$ref": "#/components/schemas/TableExpressionFilterValueRange" + }, + "lt": { + "$ref": "#/components/schemas/TableExpressionFilterValueRange" + } + } + } + } + }, + "EqualsFilterV3": { + "type": "object", + "title": "equals", + "required": [ + "equals" + ], + "properties": { + "equals": { + "required": [ + "property", + "value" + ], + "description": "Matches items that contain the exact value in the provided property.", + "type": "object", + "properties": { + "property": { + "$ref": "#/components/schemas/DMSFilterProperty" + }, + "value": { + "$ref": "#/components/schemas/FilterValue" + } + } + } + } + }, + "TableExpressionEqualsFilterV3": { + "type": "object", + "title": "equals", + "required": [ + "equals" + ], + "properties": { + "equals": { + "required": [ + "property", + "value" + ], + "description": "Matches items that contain the exact value in the provided property.", + "type": "object", + "properties": { + "property": { + "$ref": "#/components/schemas/DMSFilterProperty" + }, + "value": { + "$ref": "#/components/schemas/TableExpressionFilterValue" + } + } + } + } + }, + "InFilterV3": { + "type": "object", + "title": "in", + "required": [ + "in" + ], + "properties": { + "in": { + "required": [ + "property", + "values" + ], + "description": "Matches items where the property **exactly** matches one of the given values.", + "type": "object", + "properties": { + "property": { + "$ref": "#/components/schemas/DMSFilterProperty" + }, + "values": { + "$ref": "#/components/schemas/FilterValueList" + } + } + } + } + }, + "TableExpressionInFilterV3": { + "type": "object", + "title": "in", + "required": [ + "in" + ], + "properties": { + "in": { + "required": [ + "property", + "values" + ], + "description": "Matches items where the property **exactly** matches one of the given values.", + "type": "object", + "properties": { + "property": { + "$ref": "#/components/schemas/DMSFilterProperty" + }, + "values": { + "$ref": "#/components/schemas/TableExpressionFilterValueList" + } + } + } + } + }, + "RangeFilterV3": { + "type": "object", + "title": "range", + "required": [ + "range" + ], + "properties": { + "range": { + "required": [ + "property" + ], + "description": "Matches items that contain terms within the provided range.\n\nThe range must include both an upper and a lower bound. It is not permitted to specify both inclusive\nand exclusive bounds together. E.g. `gte` and `gt`.\n\n `gte`: Greater than or equal to.\n `gt`: Greater than.\n `lte`: Less than or equal to.\n `lt`: Less than.\n", + "type": "object", + "properties": { + "property": { + "$ref": "#/components/schemas/DMSFilterProperty" + }, + "gte": { + "$ref": "#/components/schemas/FilterValueRange" + }, + "gt": { + "$ref": "#/components/schemas/FilterValueRange" + }, + "lte": { + "$ref": "#/components/schemas/FilterValueRange" + }, + "lt": { + "$ref": "#/components/schemas/FilterValueRange" + } + } + } + } + }, + "TableExpressionRangeFilterV3": { + "type": "object", + "title": "range", + "required": [ + "range" + ], + "properties": { + "range": { + "required": [ + "property" + ], + "description": "Matches items that contain terms within the provided range.\n\nThe range must include both an upper and a lower bound. It is not permitted to specify both inclusive\nand exclusive bounds together. E.g. `gte` and `gt`.\n\n `gte`: Greater than or equal to.\n `gt`: Greater than.\n `lte`: Less than or equal to.\n `lt`: Less than.\n", + "type": "object", + "properties": { + "property": { + "$ref": "#/components/schemas/DMSFilterProperty" + }, + "gte": { + "$ref": "#/components/schemas/TableExpressionFilterValueRange" + }, + "gt": { + "$ref": "#/components/schemas/TableExpressionFilterValueRange" + }, + "lte": { + "$ref": "#/components/schemas/TableExpressionFilterValueRange" + }, + "lt": { + "$ref": "#/components/schemas/TableExpressionFilterValueRange" + } + } + } + } + }, + "PrefixFilterV3": { + "type": "object", + "title": "prefix", + "required": [ + "prefix" + ], + "properties": { + "prefix": { + "required": [ + "property", + "value" + ], + "description": "Matches items that have the prefix in the identified property. This filter is only supported for single value text properties.", + "type": "object", + "properties": { + "property": { + "$ref": "#/components/schemas/DMSFilterProperty" + }, + "value": { + "oneOf": [ + { + "type": "string" + }, + { + "$ref": "#/components/schemas/ParameterizedPropertyValueV3" + } + ] + } + } + } + } + }, + "TableExpressionPrefixFilterV3": { + "type": "object", + "title": "prefix", + "required": [ + "prefix" + ], + "properties": { + "prefix": { + "required": [ + "property", + "value" + ], + "description": "Matches items that have the prefix in the identified property.", + "type": "object", + "properties": { + "property": { + "$ref": "#/components/schemas/DMSFilterProperty" + }, + "value": { + "$ref": "#/components/schemas/TableExpressionFilterValue" + } + } + } + } + }, + "ContainsAnyFilterV3": { + "type": "object", + "title": "containsAny", + "required": [ + "containsAny" + ], + "properties": { + "containsAny": { + "required": [ + "property", + "values" + ], + "description": "Matches items where the property contains one or more of the given values. Only apply this filter to multivalued properties.", + "type": "object", + "properties": { + "property": { + "$ref": "#/components/schemas/DMSFilterProperty" + }, + "values": { + "$ref": "#/components/schemas/FilterValueList" + } + } + } + } + }, + "TableExpressionContainsAnyFilterV3": { + "type": "object", + "title": "containsAny", + "required": [ + "containsAny" + ], + "properties": { + "containsAny": { + "required": [ + "property", + "values" + ], + "description": "Matches items where the property contains one or more of the given values. Only apply this filter to multivalued properties.", + "type": "object", + "properties": { + "property": { + "$ref": "#/components/schemas/DMSFilterProperty" + }, + "values": { + "$ref": "#/components/schemas/TableExpressionFilterValueList" + } + } + } + } + }, + "ContainsAllFilterV3": { + "type": "object", + "title": "containsAll", + "required": [ + "containsAll" + ], + "properties": { + "containsAll": { + "required": [ + "property", + "values" + ], + "description": "Matches items where the property contains all the given values. Only apply this filter to multivalued properties.", + "type": "object", + "properties": { + "property": { + "$ref": "#/components/schemas/DMSFilterProperty" + }, + "values": { + "$ref": "#/components/schemas/FilterValueList" + } + } + } + } + }, + "TableExpressionContainsAllFilterV3": { + "type": "object", + "title": "containsAll", + "required": [ + "containsAll" + ], + "properties": { + "containsAll": { + "required": [ + "property", + "values" + ], + "description": "Matches items where the property contains all the given values. Only apply this filter to multivalued properties.", + "type": "object", + "properties": { + "property": { + "$ref": "#/components/schemas/DMSFilterProperty" + }, + "values": { + "$ref": "#/components/schemas/TableExpressionFilterValueList" + } + } + } + } + }, + "TypeInformationOuter": { + "type": "object", + "description": "Spaces for the requested view and containers", + "additionalProperties": { + "x-additionalPropertiesName": "space-name", + "allOf": [ + { + "$ref": "#/components/schemas/TypingViewOrContainer" + } + ] + } + }, + "TypingViewOrContainer": { + "type": "object", + "description": "View or container holding properties", + "additionalProperties": { + "x-additionalPropertiesName": "view-or-container-external-id", + "allOf": [ + { + "$ref": "#/components/schemas/TypeInformation" + } + ] + } + }, + "TypeInformation": { + "type": "object", + "description": "Type information for the returned properties (if requested)", + "additionalProperties": { + "x-additionalPropertiesName": "property-identifier", + "allOf": [ + { + "$ref": "#/components/schemas/TypePropertyDefinition" + } + ] + } + }, + "DMSExternalId": { + "type": "string", + "pattern": "^[a-zA-Z]([a-zA-Z0-9_]{0,253}[a-zA-Z0-9])?$", + "minLength": 1, + "maxLength": 255 + }, + "NodeOrEdgeExternalId": { + "type": "string", + "pattern": "^[^\\\\x00]{1,256}$", + "minLength": 1, + "maxLength": 256 + }, + "DMSVersion": { + "type": "string", + "pattern": "^[a-zA-Z0-9]([.a-zA-Z0-9_-]{0,41}[a-zA-Z0-9])?$", + "minLength": 1, + "maxLength": 43 + }, + "PropertyIdentifierV3": { + "type": "string", + "pattern": "^[a-zA-Z]([a-zA-Z0-9_]{0,253}[a-zA-Z0-9])?$", + "minLength": 1, + "maxLength": 255 + }, + "DirectRelationReference": { + "type": "object", + "description": "Reference to the node pointed to by the direct relation. The reference consists of a space and an external-id.", + "required": [ + "space", + "externalId" + ], + "properties": { + "space": { + "$ref": "#/components/schemas/SpaceSpecification" + }, + "externalId": { + "$ref": "#/components/schemas/NodeOrEdgeExternalId" + } + } + }, + "LimitWithDefault1000": { + "type": "object", + "properties": { + "limit": { + "description": "Limits the number of results to return.", + "type": "integer", + "default": 1000, + "minimum": 1, + "maximum": 1000 + } + } + }, + "ReducedLimit": { + "type": "object", + "description": "Limits the number of results returned. The greatest number of results returned by the server is 1000. This is true even when you specify a higher limit.", + "properties": { + "limit": { + "type": "integer", + "default": 10, + "minimum": 1, + "maximum": 1000 + } + } + }, + "TableExpressionQueryLimit": { + "type": "integer", + "default": 100, + "minimum": 1, + "maximum": 10000, + "description": "Limits the number of instances in the result set generated by this table expression." + }, + "TableExpressionSyncLimit": { + "type": "integer", + "default": 100, + "minimum": 100, + "maximum": 2000, + "description": "Limits the number of instances in the result set generated by this table expression." + }, + "SpaceSpecification": { + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9_-]{0,41}[a-zA-Z0-9]?$", + "minLength": 1, + "maxLength": 43 + }, + "AllVersionsFlag": { + "type": "boolean", + "default": false, + "description": "If all versions of the entity should be returned. Defaults to false which returns the latest version, attributed to the newest 'createdTime' field" + }, + "IncludeGlobalFlag": { + "type": "boolean", + "default": false, + "description": "If the global items of the entity should be returned. Defaults to false which excludes global items." + }, + "TextProperty": { + "type": "object", + "description": "Text type", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "text" + ] + }, + "list": { + "type": "boolean", + "description": "Specifies that the data type is a list of values. The ordering of values is preserved.\n", + "default": false + }, + "collation": { + "type": "string", + "description": "Collation - the set of language specific rules - used when sorting text fields", + "enum": [ + "ucs_basic", + "und", + "af", + "af-NA", + "af-ZA", + "agq", + "agq-CM", + "ak", + "ak-GH", + "am", + "am-ET", + "ar", + "ar-001", + "ar-AE", + "ar-BH", + "ar-DJ", + "ar-DZ", + "ar-EG", + "ar-EH", + "ar-ER", + "ar-IL", + "ar-IQ", + "ar-JO", + "ar-KM", + "ar-KW", + "ar-LB", + "ar-LY", + "ar-MA", + "ar-MR", + "ar-OM", + "ar-PS", + "ar-QA", + "ar-SA", + "ar-SD", + "ar-SO", + "ar-SS", + "ar-SY", + "ar-TD", + "ar-TN", + "ar-YE", + "as", + "as-IN", + "asa", + "asa-TZ", + "ast", + "ast-ES", + "az", + "az-Cyrl", + "az-Cyrl-AZ", + "az-Latn", + "az-Latn-AZ", + "bas", + "bas-CM", + "be", + "be-BY", + "bem", + "bem-ZM", + "bez", + "bez-TZ", + "bg", + "bg-BG", + "bm", + "bm-ML", + "bn", + "bn-BD", + "bn-IN", + "bo", + "bo-CN", + "bo-IN", + "br", + "br-FR", + "brx", + "brx-IN", + "bs", + "bs-Cyrl", + "bs-Cyrl-BA", + "bs-Latn", + "bs-Latn-BA", + "ca", + "ca-AD", + "ca-ES", + "ca-FR", + "ca-IT", + "ccp", + "ccp-BD", + "ccp-IN", + "ce", + "ce-RU", + "ceb", + "ceb-PH", + "cgg", + "cgg-UG", + "chr", + "chr-US", + "ckb", + "ckb-IQ", + "ckb-IR", + "cs", + "cs-CZ", + "cy", + "cy-GB", + "da", + "da-DK", + "da-GL", + "dav", + "dav-KE", + "de", + "de-AT", + "de-BE", + "de-CH", + "de-DE", + "de-IT", + "de-LI", + "de-LU", + "dje", + "dje-NE", + "dsb", + "dsb-DE", + "dua", + "dua-CM", + "dyo", + "dyo-SN", + "dz", + "dz-BT", + "ebu", + "ebu-KE", + "ee", + "ee-GH", + "ee-TG", + "el", + "el-CY", + "el-GR", + "en", + "en-001", + "en-150", + "en-AE", + "en-AG", + "en-AI", + "en-AS", + "en-AT", + "en-AU", + "en-BB", + "en-BE", + "en-BI", + "en-BM", + "en-BS", + "en-BW", + "en-BZ", + "en-CA", + "en-CC", + "en-CH", + "en-CK", + "en-CM", + "en-CX", + "en-CY", + "en-DE", + "en-DG", + "en-DK", + "en-DM", + "en-ER", + "en-FI", + "en-FJ", + "en-FK", + "en-FM", + "en-GB", + "en-GD", + "en-GG", + "en-GH", + "en-GI", + "en-GM", + "en-GU", + "en-GY", + "en-HK", + "en-IE", + "en-IL", + "en-IM", + "en-IN", + "en-IO", + "en-JE", + "en-JM", + "en-KE", + "en-KI", + "en-KN", + "en-KY", + "en-LC", + "en-LR", + "en-LS", + "en-MG", + "en-MH", + "en-MO", + "en-MP", + "en-MS", + "en-MT", + "en-MU", + "en-MW", + "en-MY", + "en-NA", + "en-NF", + "en-NG", + "en-NL", + "en-NR", + "en-NU", + "en-NZ", + "en-PG", + "en-PH", + "en-PK", + "en-PN", + "en-PR", + "en-PW", + "en-RW", + "en-SB", + "en-SC", + "en-SD", + "en-SE", + "en-SG", + "en-SH", + "en-SI", + "en-SL", + "en-SS", + "en-SX", + "en-SZ", + "en-TC", + "en-TK", + "en-TO", + "en-TT", + "en-TV", + "en-TZ", + "en-UG", + "en-UM", + "en-US", + "en-US-u-va-posix", + "en-VC", + "en-VG", + "en-VI", + "en-VU", + "en-WS", + "en-ZA", + "en-ZM", + "en-ZW", "eo", "eo-001", "es", @@ -29128,182 +31646,1912 @@ "zu", "zu-ZA" ], - "default": "ucs_basic" + "default": "ucs_basic" + } + } + }, + "PrimitiveProperty": { + "type": "object", + "description": "Primitive types for the property.\n\nWe expect dates to be in the ISO-8601 format, while timestamps are expected to be an epoch value with\nmillisecond precision. JSON values have to be valid JSON fragments. The maximum allowed size for a JSON\nobject is 40960 bytes. For list of json values, the size of the entire list must be within this limit.\nThe maximum allowed length of a key is 128, while the maximum allowed size of a value is 10240 bytes\nand you can have up to 256 key-value pairs.\n", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "boolean", + "float32", + "float64", + "int32", + "int64", + "timestamp", + "date", + "json" + ] + }, + "unit": { + "type": "object", + "description": "The unit of the data stored in this property, can only be assign to type float32 or float64.\nExternalId needs to match with a unit in the Cognite unit catalog.\n", + "required": [ + "externalId" + ], + "example": "externalId: temperature:deg_c, sourceUnit: Celsius\n", + "properties": { + "externalId": { + "$ref": "#/components/schemas/NodeOrEdgeExternalId" + }, + "sourceUnit": { + "type": "string" + } + } + }, + "list": { + "description": "Specifies that the data type is a list of values. The ordering of values is preserved.\n", + "type": "boolean", + "default": false + } + } + }, + "CDFExternalIdReference": { + "type": "object", + "description": "An external-id reference to an existing CDF resource type item, such as a time series.\n\nAn example could be that for an existing time series stored in the CDF time series resource type with the\nexternal-id 21PT0293, then the value would be set to \"21PT029\", and the type would be set to \"timeseries\". There\nare no referential integrity guarantees for this, and the client should handle if the time series has been removed\nor the client may not have access to it.\n\nCurrently, time series, sequence and file references are supported.\n", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "timeseries", + "file", + "sequence" + ] + }, + "list": { + "description": "Specifies that the data type is a list of values. The ordering of values is preserved.\n", + "type": "boolean", + "default": false + } + } + }, + "ViewDirectNodeRelation": { + "description": "Direct node relation. Can include a hint to specify the view that this direct relation points to. This hint is optional.", + "allOf": [ + { + "$ref": "#/components/schemas/DirectNodeRelation" + }, + { + "type": "object", + "properties": { + "source": { + "description": "The hint showing the view what the direct relation points to.", + "allOf": [ + { + "$ref": "#/components/schemas/ViewReference" + } + ] + } + } + } + ] + }, + "DirectNodeRelation": { + "type": "object", + "description": "Direct node relation", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "direct" + ] + }, + "container": { + "description": "The (optional) required type for the node the direct relation points to. If specified, the node must exist before the direct relation is referenced and of the specified type. If no container specification is used, the node will be auto created with the built-in ```node``` container type, and it does not explicitly have to be created before the node that references it.", + "allOf": [ + { + "$ref": "#/components/schemas/ContainerReference" + } + ] + }, + "list": { + "description": "Specifies that the data type is a list of values. The ordering of values is preserved.\n", + "type": "boolean", + "default": false + } + } + }, + "EnumProperty": { + "type": "object", + "description": "An enum type property.\n\nAn enum property can only consist for predefined values.\n", + "required": [ + "type", + "values" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "enum" + ] + }, + "unknownValue": { + "type": "string", + "description": "The value to use when the enum value is unknown.\nThis can optionally be used to provide forward-compatibility, Specifying what value to use if the client does not recognize the returned value. It is not possible to ingest the unknown value, but it must be part of the allowed values." + }, + "values": { + "type": "object", + "description": "A set of all possible values for the enum property. The enum value identifier has to have a length of between 1 and 127 characters. It must also match the pattern ```^[_A-Za-z][_0-9A-Za-z]{0,127}$```.\n\nExample: ```{ \"value1\": { \"name\": \"Value 1\", \"description\": \"This is value 1\" }, \"value2\": { } }```", + "additionalProperties": { + "x-additionalPropertiesName": "enumValueIdentifier", + "minProperties": 1, + "maxProperties": 32, + "allOf": [ + { + "$ref": "#/components/schemas/EnumValueProperties" + } + ] + } + } + }, + "example": { + "unknownValue": "unknown", + "values": { + "value1": { + "name": "Value 1", + "description": "This is value 1" + }, + "value2": {}, + "unknown": { + "name": "Unknown", + "description": "Used if the client does not recognize the returned value." + } + } + } + }, + "EnumValueProperties": { + "type": "object", + "description": "Metadata of the enum value.", + "properties": { + "name": { + "type": "string", + "description": "Name of the enum value.", + "maxLength": 255 + }, + "description": { + "type": "string", + "description": "Description of the enum value.", + "maxLength": 1024 + } + } + }, + "InstanceType": { + "description": "The type of instance", + "type": "string", + "default": "node", + "enum": [ + "node", + "edge" + ] + }, + "ViewOrContainer": { + "type": "object", + "description": "View or container holding properties", + "additionalProperties": { + "description": "Properties in the view/container of the instance", + "x-additionalPropertiesName": "view-or-container-identifier", + "allOf": [ + { + "$ref": "#/components/schemas/PropertyValueGroupV3" + } + ] + } + }, + "UsedFor": { + "type": "string", + "description": "Should this operation apply to nodes, edges or both.", + "enum": [ + "node", + "edge", + "all" + ], + "default": "node" + }, + "DMSFilterProperty": { + "title": "property", + "description": "Property you want to filter. Use a list of strings to specify nested properties.\n\nExample:\n\nYou have the object\n```\n{\n \"room\": {\n \"id\": \"b53\"\n },\n \"roomId\": \"a23\"\n}\n```\n\nUse `[\"room\", \"id\"]` to return the value in the nested `id` property, which is a part of the `room` object.\n\nYou can also read the value(s) in the standalone property `roomId` with `[\"roomId\"]`.\n", + "type": "array", + "minItems": 1, + "items": { + "type": "string" + } + }, + "DMSExistsFilter": { + "type": "object", + "title": "exists", + "required": [ + "exists" + ], + "properties": { + "exists": { + "required": [ + "property" + ], + "description": "Will match items that have a value in the specified property.\n", + "type": "object", + "properties": { + "property": { + "$ref": "#/components/schemas/DMSFilterProperty" + } + } + } + } + }, + "IngestLogsRequest": { + "type": "object", + "required": [ + "stream", + "items" + ], + "properties": { + "stream": { + "allOf": [ + { + "$ref": "#/components/schemas/Stream" + } + ] + }, + "items": { + "type": "array", + "title": "logItems", + "description": "List of logs to ingest.\n", + "minItems": 1, + "maxItems": 2000, + "items": { + "allOf": [ + { + "$ref": "#/components/schemas/LogIngest" + } + ] + } + } + } + }, + "ListLogsRequest": { + "allOf": [ + { + "type": "object", + "description": "Defines a filter request. This will let you fetch logs with some necessary properties filtered by different criteria.\n", + "required": [ + "stream" + ], + "properties": { + "stream": { + "allOf": [ + { + "$ref": "#/components/schemas/Stream" + } + ] + }, + "sources": { + "allOf": [ + { + "$ref": "#/components/schemas/SourceSelector" + } + ] + }, + "search": { + "allOf": [ + { + "$ref": "#/components/schemas/SearchIla" + } + ] + }, + "filter": { + "allOf": [ + { + "$ref": "#/components/schemas/FilterDefinitionIla" + } + ] + }, + "createdTime": { + "allOf": [ + { + "$ref": "#/components/schemas/CreatedTimeFilter" + } + ] + } + } + }, + { + "$ref": "#/components/schemas/LimitWithDefault10" + }, + { + "$ref": "#/components/schemas/Sort" + } + ] + }, + "SyncLogRequest": { + "allOf": [ + { + "type": "object", + "required": [ + "stream" + ], + "properties": { + "stream": { + "allOf": [ + { + "$ref": "#/components/schemas/Stream" + } + ] + }, + "sources": { + "allOf": [ + { + "$ref": "#/components/schemas/SourceSelector" + } + ] + }, + "filter": { + "allOf": [ + { + "$ref": "#/components/schemas/FilterDefinitionIla" + } + ] + }, + "cursor": { + "type": "string", + "description": "A cursor returned from the previous sync request.\n", + "minLength": 1, + "maxLength": 100500, + "example": "c29tZSBjdXJzb3I=" + } + } + }, + { + "$ref": "#/components/schemas/LimitWithDefault10" + } + ] + }, + "AggregateLogsRequest": { + "description": "Defines an aggregation request. This will let you aggregate supported data types. The request\nsupports filters, and allows optional search matching.\n", + "type": "object", + "required": [ + "stream", + "aggregates" + ], + "properties": { + "stream": { + "allOf": [ + { + "$ref": "#/components/schemas/Stream" + } + ] + }, + "search": { + "allOf": [ + { + "$ref": "#/components/schemas/SearchIla" + } + ] + }, + "filter": { + "allOf": [ + { + "$ref": "#/components/schemas/FilterDefinitionIla" + } + ] + }, + "createdTime": { + "allOf": [ + { + "$ref": "#/components/schemas/CreatedTimeFilter" + } + ] + }, + "aggregates": { + "description": "A dictionary of requested aggregates with client defined names/identifiers.\n\nExample:\n\n```\n{\n \"my_aggr_1\": {\n \"min\": {\"property\": [\"room\", \"size\"]}\n },\n \"my_aggr_2\": {\n \"uniqueValues\": {\n \"property\": [\"room\", \"name\"],\n \"aggregates\": {\n \"my_sub_aggr\": {\n \"avg\": {\"property\": [\"room\", \"size\"]}\n }\n }\n }\n },\n}\n```\n\nMax number of (sub-)aggregate trees on a level is 5, Max aggregate tree depth is 5. Max number of aggregates in the forest is 16.\n", + "allOf": [ + { + "$ref": "#/components/schemas/AggregatesDefinitionIla" + } + ] + } + } + }, + "Stream": { + "type": "string", + "title": "dataStream", + "description": "Name of the stream where the logs are located.\n\nCurrently, hardcoded names (per project) are supported:\n\n```\ntest1, test2, test3, test4, test5\nlogs1, logs2, logs3, logs4, logs5\n```\n", + "pattern": "^[a-zA-Z][a-zA-Z0-9_-]{0,253}[a-zA-Z0-9]?$", + "minLength": 1, + "maxLength": 255, + "example": "test1" + }, + "LogIngest": { + "type": "object", + "title": "logItem", + "description": "Log to ingest.\n", + "required": [ + "space", + "sources" + ], + "properties": { + "space": { + "description": "Id of the space that the ```log``` belongs to.\n", + "example": "mySpace", + "allOf": [ + { + "$ref": "#/components/schemas/SpaceSpecification" + } + ] + }, + "sources": { + "type": "array", + "title": "propertiesPerContainer", + "description": "List of source properties to write. The properties are from the container(s) making up this ```log```.\n", + "minItems": 1, + "maxItems": 100, + "items": { + "allOf": [ + { + "$ref": "#/components/schemas/LogData" + } + ] + } + } + } + }, + "LogData": { + "type": "object", + "description": "Property values for the identified/specified container.\n", + "required": [ + "source", + "properties" + ], + "properties": { + "source": { + "allOf": [ + { + "$ref": "#/components/schemas/ContainerReferenceIla" + } + ] + }, + "properties": { + "title": "containerProperties", + "allOf": [ + { + "$ref": "#/components/schemas/PropertyValueGroupV3" + } + ] + } + } + }, + "SourceSelector": { + "type": "array", + "title": "propertiesPerContainer", + "description": "List of containers and their properties which values should be selected for the response.\n", + "minItems": 1, + "maxItems": 10, + "items": { + "type": "object", + "title": "propertiesForContainer", + "required": [ + "source", + "properties" + ], + "properties": { + "source": { + "allOf": [ + { + "$ref": "#/components/schemas/ContainerReferenceIla" + } + ] + }, + "properties": { + "type": "array", + "title": "containerProperties", + "description": "Properties to return for the specified container. Use \"*\" to return all properties.\n", + "minItems": 1, + "maxItems": 1000, + "items": { + "type": "string", + "minLength": 1, + "maxLength": 255, + "example": "someProperty" + } + } + } + } + }, + "ContainerReferenceIla": { + "type": "object", + "title": "containerReference", + "description": "Reference to a container.\n", + "example": { + "type": "container,", + "space": "mySpace,", + "externalId": "myContainer" + }, + "allOf": [ + { + "$ref": "#/components/schemas/ContainerReference" + } + ] + }, + "SearchIla": { + "type": "object", + "title": "search", + "description": "Optional attribute to extend the ```filter``` with full text search capabilities for SINGLE query in the list of ```log``` properties with ```OR``` logic.\n\nTODO: use AQL approach.\n", + "required": [ + "query", + "properties" + ], + "properties": { + "query": { + "type": "string", + "title": "query", + "description": "Query string that will be parsed and used for search.\n", + "minLength": 1, + "maxLength": 1000, + "example": "find me" + }, + "properties": { + "type": "array", + "title": "properties", + "description": "Array of properties you want to search through (```OR``` logic is used).\n", + "minItems": 1, + "maxItems": 200, + "items": { + "example": [ + "mySpace", + "myContainer", + "someProperty" + ], + "allOf": [ + { + "$ref": "#/components/schemas/DMSFilterProperty" + } + ] + } + } + } + }, + "FilterDefinitionIla": { + "type": "object", + "title": "filter", + "description": "A filter Domain Specific Language (DSL) used to create advanced filter queries.\n", + "oneOf": [ + { + "$ref": "#/components/schemas/BoolFilterIla" + }, + { + "$ref": "#/components/schemas/LeafFilterIla" + } + ], + "example": { + "and": [ + { + "containsAll": { + "property": [ + "mySpace", + "myContainer", + "myProperty" + ], + "values": [ + 10011, + 10012 + ] + } + }, + { + "range": { + "property": [ + "my_space", + "my_container", + "my_weight" + ], + "gte": 0 + } + } + ] + } + }, + "BoolFilterIla": { + "type": "object", + "title": "boolFilter", + "description": "Build a new query by combining other queries, using boolean operators. We support the `and`, `or`, and\n`not` boolean operators.\n", + "oneOf": [ + { + "type": "object", + "title": "and", + "required": [ + "and" + ], + "properties": { + "and": { + "type": "array", + "description": "All the sub-clauses in the query must return a matching item.\n", + "minItems": 1, + "maxItems": 100, + "items": { + "allOf": [ + { + "$ref": "#/components/schemas/FilterDefinitionIla" + } + ] + } + } + } + }, + { + "type": "object", + "title": "or", + "required": [ + "or" + ], + "properties": { + "or": { + "type": "array", + "description": "One or more of the sub-clauses in the query must return a matching item.\n", + "minItems": 1, + "maxItems": 100, + "items": { + "allOf": [ + { + "$ref": "#/components/schemas/FilterDefinitionIla" + } + ] + } + } + } + }, + { + "type": "object", + "title": "not", + "required": [ + "not" + ], + "properties": { + "not": { + "type": "object", + "title": "not", + "description": "None of the sub-clauses in the query can return a matching item.\n", + "allOf": [ + { + "$ref": "#/components/schemas/FilterDefinitionIla" + } + ] + } + } + } + ] + }, + "LeafFilterIla": { + "type": "object", + "title": "leafFilter", + "description": "Leaf filter which is used in boolean filters to build advanced queries to filter out some logs.\n", + "oneOf": [ + { + "$ref": "#/components/schemas/MatchAllFilter" + }, + { + "$ref": "#/components/schemas/DMSExistsFilter" + }, + { + "$ref": "#/components/schemas/EqualsFilterIla" + }, + { + "$ref": "#/components/schemas/HasDataFilterIla" + }, + { + "$ref": "#/components/schemas/PrefixFilterIla" + }, + { + "$ref": "#/components/schemas/RangeFilterIla" + }, + { + "$ref": "#/components/schemas/InFilterIla" + }, + { + "$ref": "#/components/schemas/ContainsAllFilterIla" + }, + { + "$ref": "#/components/schemas/ContainsAnyFilterIla" + } + ] + }, + "EqualsFilterIla": { + "type": "object", + "title": "equals", + "required": [ + "equals" + ], + "properties": { + "equals": { + "type": "object", + "description": "Matches items that contain the exact value in the provided property.\n", + "required": [ + "property", + "value" + ], + "properties": { + "property": { + "allOf": [ + { + "$ref": "#/components/schemas/DMSFilterProperty" + } + ] + }, + "value": { + "title": "value", + "allOf": [ + { + "$ref": "#/components/schemas/RawPropertyValueV3" + } + ] + } + } + } + } + }, + "HasDataFilterIla": { + "type": "object", + "title": "hasData", + "required": [ + "hasData" + ], + "properties": { + "hasData": { + "type": "array", + "title": "containerItems", + "minItems": 1, + "maxItems": 50, + "description": "Matches items where data is present in the referenced containers.\n", + "items": { + "allOf": [ + { + "$ref": "#/components/schemas/ContainerReferenceIla" + } + ] + } + } + } + }, + "PrefixFilterIla": { + "type": "object", + "title": "prefix", + "required": [ + "prefix" + ], + "properties": { + "prefix": { + "type": "object", + "description": "Matches items that have the prefix in the identified property. This filter is only supported for\nsingle value text properties.\n", + "required": [ + "property", + "value" + ], + "properties": { + "property": { + "allOf": [ + { + "$ref": "#/components/schemas/DMSFilterProperty" + } + ] + }, + "value": { + "type": "string", + "title": "prefixValue", + "minLength": 1, + "maxLength": 500 + } + } + } + } + }, + "RangeFilterIla": { + "type": "object", + "title": "range", + "required": [ + "range" + ], + "properties": { + "range": { + "type": "object", + "description": "Matches items that contain terms within the provided range.\n\nThe range must include both an upper and a lower bound. It is not permitted to specify both inclusive\nand exclusive bounds together. E.g. `gte` and `gt`.\n\n `gte`: Greater than or equal to.\n `gt`: Greater than.\n `lte`: Less than or equal to.\n `lt`: Less than.\n", + "required": [ + "property" + ], + "properties": { + "property": { + "allOf": [ + { + "$ref": "#/components/schemas/DMSFilterProperty" + } + ] + }, + "gte": { + "allOf": [ + { + "$ref": "#/components/schemas/RangeValue" + } + ] + }, + "gt": { + "allOf": [ + { + "$ref": "#/components/schemas/RangeValue" + } + ] + }, + "lte": { + "allOf": [ + { + "$ref": "#/components/schemas/RangeValue" + } + ] + }, + "lt": { + "allOf": [ + { + "$ref": "#/components/schemas/RangeValue" + } + ] + } + } + } + } + }, + "InFilterIla": { + "type": "object", + "title": "in", + "required": [ + "in" + ], + "properties": { + "in": { + "type": "object", + "description": "Matches items where the property **exactly** matches one of the given values. You can only apply this\nfilter to properties containing a single value.\n", + "required": [ + "property", + "values" + ], + "properties": { + "property": { + "allOf": [ + { + "$ref": "#/components/schemas/DMSFilterProperty" + } + ] + }, + "values": { + "title": "values", + "allOf": [ + { + "$ref": "#/components/schemas/RawPropertyValueListV3" + } + ] + } + } + } + } + }, + "ContainsAllFilterIla": { + "type": "object", + "title": "containsAll", + "required": [ + "containsAll" + ], + "properties": { + "containsAll": { + "type": "object", + "description": "Matches items where the property contains all the given values.\nOnly apply this filter to multivalued properties.\n", + "required": [ + "property", + "values" + ], + "properties": { + "property": { + "allOf": [ + { + "$ref": "#/components/schemas/DMSFilterProperty" + } + ] + }, + "values": { + "title": "values", + "allOf": [ + { + "$ref": "#/components/schemas/RawPropertyValueListV3" + } + ] + } + } + } + } + }, + "ContainsAnyFilterIla": { + "type": "object", + "title": "containsAny", + "required": [ + "containsAny" + ], + "properties": { + "containsAny": { + "type": "object", + "description": "Matches items where the property contains one or more of the given values.\nOnly apply this filter to multivalued properties.\n", + "required": [ + "property", + "values" + ], + "properties": { + "property": { + "allOf": [ + { + "$ref": "#/components/schemas/DMSFilterProperty" + } + ] + }, + "values": { + "title": "values", + "allOf": [ + { + "$ref": "#/components/schemas/RawPropertyValueListV3" + } + ] + } + } + } + } + }, + "CreatedTimeFilter": { + "type": "object", + "title": "createdTime", + "description": "Matches logs with the created time within the provided range.\n\nThe range must include at least one an upper or a lower bound. It is not permitted to specify both inclusive\nand exclusive bounds together. E.g. `gte` and `gt`.\n\n `gte`: Greater than or equal to.\n `gt`: Greater than.\n `lte`: Less than or equal to.\n `lt`: Less than.\n", + "properties": { + "gte": { + "allOf": [ + { + "$ref": "#/components/schemas/CreatedTimeRangeValue" + } + ] + }, + "gt": { + "allOf": [ + { + "$ref": "#/components/schemas/CreatedTimeRangeValue" + } + ] + }, + "lte": { + "allOf": [ + { + "$ref": "#/components/schemas/CreatedTimeRangeValue" + } + ] + }, + "lt": { + "allOf": [ + { + "$ref": "#/components/schemas/CreatedTimeRangeValue" + } + ] + } + }, + "example": { + "gt": 1705341600000, + "lt": "2030-05-15T18:00:00.00Z" + } + }, + "CreatedTimeRangeValue": { + "oneOf": [ + { + "type": "string", + "minLength": 1, + "maxLength": 100 + }, + { + "type": "integer" + } + ], + "title": "createdTimeRangeBound", + "description": "Timestamp value you wish to find in the ```log``` created time using a range clause.\n" + }, + "LimitWithDefault10": { + "type": "object", + "title": "limit", + "properties": { + "limit": { + "type": "integer", + "description": "Limits the number of results to return.\n", + "default": 10, + "minimum": 1, + "maximum": 10000, + "example": 42 + } + } + }, + "Sort": { + "type": "object", + "title": "sortsSpecification", + "properties": { + "sort": { + "type": "array", + "title": "orderedSortSpecList", + "description": "Ordered list of sorting specifications (property, direction, etc) to sort on.\n", + "minItems": 1, + "maxItems": 5, + "items": { + "allOf": [ + { + "$ref": "#/components/schemas/PropertySort" + } + ] + } + } + } + }, + "PropertySort": { + "type": "object", + "title": "sortSpecification", + "description": "Sorting spec for a property.\n", + "required": [ + "property" + ], + "properties": { + "property": { + "example": [ + "space" + ], + "allOf": [ + { + "$ref": "#/components/schemas/DMSFilterProperty" + } + ] + }, + "direction": { + "type": "string", + "default": "ascending", + "enum": [ + "ascending", + "descending" + ], + "example": "descending" + } + } + }, + "AggregatesDefinitionIla": { + "type": "object", + "title": "aggregatesDictionary", + "minProperties": 1, + "maxProperties": 5, + "uniqueItems": true, + "additionalProperties": { + "x-additionalPropertiesName": "aggregate-id", + "title": "aggregateDictionary", + "type": "object", + "description": "An aggregate. It's an aggregate identifier which map to an aggregator function, and some fields to use for the aggregator function.\nThe identifiers should match the next constraints:\n pattern: \"^[A-Za-z_][A-Za-z0-9_]*$\"\n maxLength: 255\n minLength: 1\n", + "oneOf": [ + { + "$ref": "#/components/schemas/AvgAggregateIla" + }, + { + "$ref": "#/components/schemas/CountAggregateIla" + }, + { + "$ref": "#/components/schemas/MinAggregateIla" + }, + { + "$ref": "#/components/schemas/MaxAggregateIla" + }, + { + "$ref": "#/components/schemas/SumAggregateIla" + }, + { + "$ref": "#/components/schemas/UniqueValuesAggregateIla" + }, + { + "$ref": "#/components/schemas/NumberHistogramAggregateIla" + }, + { + "$ref": "#/components/schemas/TimeHistogramAggregateIla" + }, + { + "$ref": "#/components/schemas/MovingFunctionAggregateIla" + } + ] + }, + "propertyNames": { + "maxLength": 255, + "minLength": 1 + }, + "example": { + "my_avg_aggregate1": { + "avg": { + "property": [ + "mySpace", + "myContainer", + "manufacturer" + ] + } + }, + "my_terms_aggregate2": { + "uniqueValues": { + "property": [ + "mySpace", + "myContainer", + "manufacturer" + ], + "aggregates": { + "my_sub_aggregate1": { + "min": { + "property": [ + "mySpace", + "myContainer", + "price" + ] + } + }, + "my_sub_aggregate2": { + "max": { + "property": [ + "mySpace", + "myContainer", + "price" + ] + } + }, + "my_sub_aggregate3": { + "uniqueValues": { + "property": [ + "mySpace", + "myContainer", + "region" + ] + } + } + } + } + } + } + }, + "MovingFunctionAggregateIla": { + "type": "object", + "title": "movingFunction", + "required": [ + "movingFunction" + ], + "properties": { + "movingFunction": { + "type": "object", + "description": "Given an ordered series of data, the Moving Function aggregation will slide a window across the data and allow the user to specify a function that is executed on each window of data.\nA number of common functions are predefined such as min/max, moving averages, etc. Customer defined functions are not allowed now.\nThe aggregate must be embedded inside of a numberHistogram or timeHistogram aggregate. It can be embedded like any other metric aggregate.\n", + "required": [ + "bucketsPath", + "window", + "function" + ], + "properties": { + "bucketsPath": { + "type": "string", + "description": "Path to the metric of interest from other aggregation.\n\n`buckets_path` syntax:\n\n```\nAGG_SEPARATOR = `>` ;\nAGG_NAME = ;\nMULTIBUCKET_KEY = `[]`\nKEY_NAME = ;\nPATH = ?()* ;\n```\n", + "maxLength": 1280, + "minLength": 1, + "example": "multi_bucket_aggr[\"top_bucket\"]>sub_aggr>sub_sub_aggr" + }, + "window": { + "type": "integer", + "minimum": 1, + "description": "The size of window to \"slide\" across the histogram.\n", + "example": 42 + }, + "function": { + "type": "string", + "enum": [ + "MovingFunctions.max", + "MovingFunctions.min", + "MovingFunctions.sum", + "MovingFunctions.unweightedAvg", + "MovingFunctions.linearWeightedAvg" + ], + "description": "The function that should be executed on each window of data.\n", + "example": "MovingFunctions.sum" + } + }, + "additionalProperties": false + } + }, + "additionalProperties": false + }, + "AvgAggregateIla": { + "type": "object", + "title": "avg", + "required": [ + "avg" + ], + "properties": { + "avg": { + "type": "object", + "description": "Calculates the average from the data stored by the specified property. This aggregation uses an average mean\ncalculation, and not an integral mean.\n", + "required": [ + "property" + ], + "properties": { + "property": { + "title": "aggregateProperty", + "allOf": [ + { + "$ref": "#/components/schemas/AggregatePropertyIla" + } + ] + } + }, + "additionalProperties": false + } + }, + "additionalProperties": false + }, + "CountAggregateIla": { + "title": "count", + "type": "object", + "required": [ + "count" + ], + "properties": { + "count": { + "type": "object", + "description": "Counts the number of items. When you specify a property, it returns the number of non-null values for that property.\n", + "properties": { + "property": { + "title": "aggregateProperty", + "allOf": [ + { + "$ref": "#/components/schemas/AggregatePropertyIla" + } + ] + } + }, + "additionalProperties": false + } + }, + "additionalProperties": false + }, + "MinAggregateIla": { + "type": "object", + "title": "min", + "required": [ + "min" + ], + "properties": { + "min": { + "type": "object", + "description": "The function will calculate, and return, the lowest - min - value for a property.\n", + "required": [ + "property" + ], + "properties": { + "property": { + "title": "aggregateProperty", + "allOf": [ + { + "$ref": "#/components/schemas/AggregatePropertyIla" + } + ] + } + }, + "additionalProperties": false + } + }, + "additionalProperties": false + }, + "MaxAggregateIla": { + "type": "object", + "title": "max", + "required": [ + "max" + ], + "properties": { + "max": { + "type": "object", + "description": "The function will calculate, and return, the highest - max - value for the property.\n", + "required": [ + "property" + ], + "properties": { + "property": { + "title": "aggregateProperty", + "allOf": [ + { + "$ref": "#/components/schemas/AggregatePropertyIla" + } + ] + } + }, + "additionalProperties": false + } + }, + "additionalProperties": false + }, + "SumAggregateIla": { + "type": "object", + "title": "sum", + "required": [ + "sum" + ], + "properties": { + "sum": { + "type": "object", + "description": "Calculates the sum from the values of the specified property.\n", + "required": [ + "property" + ], + "properties": { + "property": { + "title": "aggregateProperty", + "allOf": [ + { + "$ref": "#/components/schemas/AggregatePropertyIla" + } + ] + } + }, + "additionalProperties": false + } + }, + "additionalProperties": false + }, + "UniqueValuesAggregateIla": { + "type": "object", + "title": "uniqueValues", + "required": [ + "uniqueValues" + ], + "properties": { + "uniqueValues": { + "type": "object", + "description": "Request unique value buckets aggregate on of the specified property.\nEach bucket is defined by `values` array and has the number of the `values` occurrences.\n", + "required": [ + "property" + ], + "properties": { + "property": { + "title": "aggregateProperty", + "allOf": [ + { + "$ref": "#/components/schemas/AggregatePropertyIla" + } + ] + }, + "aggregates": { + "description": "A dictionary of requested aggregates with client defined names/identifiers.\n", + "allOf": [ + { + "$ref": "#/components/schemas/AggregatesDefinitionIla" + } + ] + }, + "size": { + "type": "integer", + "description": "The number of top buckets returned. The default limit is 10 items.\n", + "minimum": 1, + "maximum": 2000, + "default": 10 + } + }, + "additionalProperties": false + } + }, + "additionalProperties": false + }, + "NumberHistogramAggregateIla": { + "type": "object", + "title": "numberHistogram", + "required": [ + "numberHistogram" + ], + "properties": { + "numberHistogram": { + "type": "object", + "description": "A histogram aggregator function. This function will generate a histogram from the values of the specified\nproperty. It uses the specified interval as defined in your `interval` argument.\n", + "required": [ + "property", + "interval" + ], + "properties": { + "interval": { + "type": "number", + "description": "The interval between each bucket.\n" + }, + "hardBounds": { + "type": "object", + "description": "To limit the range of buckets in the histogram.\nIt is particularly useful in the case of open data ranges that can result in a very large number of buckets.\nOne or both bounds must be specified.\n", + "properties": { + "min": { + "type": "number", + "description": "The lowest number for the histogram bucket should appear in the response.\n", + "example": 42 + }, + "max": { + "type": "number", + "description": "The highest number for the histogram bucket should appear in the response.\n", + "example": 777 + } + } + }, + "property": { + "title": "aggregateProperty", + "allOf": [ + { + "$ref": "#/components/schemas/AggregatePropertyIla" + } + ] + }, + "aggregates": { + "description": "A dictionary of requested aggregates with client defined names/identifiers.\n", + "allOf": [ + { + "$ref": "#/components/schemas/AggregatesDefinitionIla" + } + ] + } + }, + "additionalProperties": false + } + }, + "additionalProperties": false + }, + "TimeHistogramAggregateIla": { + "type": "object", + "title": "timeHistogram", + "required": [ + "timeHistogram" + ], + "properties": { + "timeHistogram": { + "type": "object", + "description": "A time histogram aggregator function. This function will generate a histogram from the values of the specified\nproperty. It uses the specified calendar or fixed interval as defined in the request arguments.\nThe request attribute calendarInterval or fixedInterval must be specified but not both.\n", + "required": [ + "property" + ], + "properties": { + "calendarInterval": { + "type": "string", + "enum": [ + "1s", + "1m", + "1h", + "1d", + "1w", + "1M", + "1q", + "1y" + ], + "description": "The calendar interval between each bucket.\n", + "example": "1q" + }, + "fixedInterval": { + "type": "string", + "description": "The interval between each bucket. It must be a correct duration representation: 3m, 400h, 25d, etc.\n", + "example": "42m", + "minLength": 1, + "maxLength": 100 + }, + "hardBounds": { + "type": "object", + "description": "To limit the range of buckets in the histogram.\nIt is particularly useful in the case of open data ranges that can result in a very large number of buckets.\nOne or both bounds must be specified.\n", + "properties": { + "min": { + "type": "string", + "description": "The lowest time point for the histogram bucket should appear in the response. It must be correct instant time representation.\n", + "example": "2024-05-15T20:00:00Z", + "minLength": 1, + "maxLength": 100 + }, + "max": { + "type": "string", + "description": "The highest time point for the histogram bucket should appear in the response. It must be correct instant time representation.\n", + "example": "2024-05-16T20:00:00Z", + "minLength": 1, + "maxLength": 100 + } + } + }, + "property": { + "title": "aggregateProperty", + "allOf": [ + { + "$ref": "#/components/schemas/AggregatePropertyIla" + } + ] + }, + "aggregates": { + "description": "A dictionary of requested aggregates with client defined names/identifiers.\n", + "allOf": [ + { + "$ref": "#/components/schemas/AggregatesDefinitionIla" + } + ] + } + }, + "additionalProperties": false + } + }, + "additionalProperties": false + }, + "AggregatePropertyIla": { + "title": "property", + "description": "Property you want to aggregate. Use a list of strings to specify nested properties.\n\nExample:\n\nYou have the schema\n```\n{\n \"mySpace\": {\n \"myContainer\": {\n \"myProperty\": \"b42\"\n }\n }\n}\n```\n\nUse `[\"mySpace\", \"myContainer\", \"myProperty\"]` to aggregate the values in the nested `myProperty` property.\n", + "type": "array", + "minItems": 3, + "maxItems": 3, + "items": { + "type": "string", + "minLength": 1, + "maxLength": 255 + }, + "example": [ + "mySpace", + "myContainer", + "myProperty" + ] + }, + "AggregatesResultDefinitionIla": { + "type": "object", + "title": "aggregatesResultDictionary", + "description": "A dictionary of the results for the requested aggregates mapped by the aggregates identifiers.\n\nExample:\n\n```\n{\n \"my_aggr_1\": {\n \"avg\": 42\n },\n \"my_aggr_2\": {\n \"max\": 69\n },\n}\n```\n", + "uniqueItems": true, + "additionalProperties": { + "x-additionalPropertiesName": "aggregate-id", + "type": "object", + "title": "aggregateResultDictionary", + "description": "Requested aggregate result. It's the aggregate identifier from the request and a set of fields to represent aggregated data.\n", + "oneOf": [ + { + "$ref": "#/components/schemas/AvgAggregateResultIla" + }, + { + "$ref": "#/components/schemas/CountAggregateResultIla" + }, + { + "$ref": "#/components/schemas/MinAggregateResultIla" + }, + { + "$ref": "#/components/schemas/MaxAggregateResultIla" + }, + { + "$ref": "#/components/schemas/SumAggregateResultIla" + }, + { + "$ref": "#/components/schemas/UniqueValuesAggregateResultIla" + }, + { + "$ref": "#/components/schemas/NumberHistogramAggregateResultIla" + }, + { + "$ref": "#/components/schemas/TimeHistogramAggregateResultIla" + }, + { + "$ref": "#/components/schemas/MovingFunctionAggregateResultIla" + } + ] + }, + "example": { + "my_avg_aggregate1": { + "avg": 42 + }, + "my_terms_aggregate2": { + "buckets": [ + { + "value": "Cognite", + "count": 42, + "aggregates": { + "my_sub_aggregate1": { + "min": 13 + }, + "my_sub_aggregate2": { + "max": 69 + }, + "my_sub_aggregate3": { + "buckets": [ + { + "value": "us1", + "count": 42 + }, + { + "value": "ie1", + "count": 7 + } + ] + } + } + }, + { + "value": "AkerBP", + "count": 21, + "aggregates": { + "my_sub_aggregate1": { + "min": 99 + }, + "my_sub_aggregate2": { + "max": 999 + }, + "my_sub_aggregate3": { + "buckets": [ + { + "value": "us1", + "count": 11 + } + ] + } + } + } + ] } } }, - "PrimitiveProperty": { + "MovingFunctionAggregateResultIla": { "type": "object", - "description": "Primitive types for the property.\n\nWe expect dates to be in the ISO-8601 format, while timestamps are expected to be an epoch value with \nmillisecond precision. JSON values have to be valid JSON fragments. The maximum allowed size for a JSON\nobject is 40960 bytes. For list of json values, the size of the entire list must be within this limit. \nThe maximum allowed length of a key is 128, while the maximum allowed size of a value is 10240 bytes \nand you can have up to 256 key-value pairs.\n", + "title": "movingFunctionResult", "required": [ - "type" + "fnValue" ], "properties": { - "type": { - "type": "string", - "enum": [ - "boolean", - "float32", - "float64", - "int32", - "int64", - "timestamp", - "date", - "json" - ] - }, - "unit": { - "type": "object", - "description": "The unit of the data stored in this property, can only be assign to type float32 or float64. \nExternalId needs to match with a unit in the Cognite unit catalog.\n", - "required": [ - "externalId" - ], - "example": "externalId: temperature:deg_c, sourceUnit: Celsius\n", - "properties": { - "externalId": { - "$ref": "#/components/schemas/NodeOrEdgeExternalId" - }, - "sourceUnit": { - "type": "string" - } - } - }, - "list": { - "description": "Specifies that the data type is a list of values. The ordering of values is preserved.\n", - "type": "boolean", - "default": false + "fnValue": { + "type": "number", + "description": "The moving function value from the parent histogram aggregate buckets data located by the specified in the request buckets path.\n", + "example": 42.7 } } }, - "CDFExternalIdReference": { + "AvgAggregateResultIla": { "type": "object", - "description": "An external-id reference to an existing CDF resource type item, such as a time series.\n\nAn example could be that for an existing time series stored in the CDF time series resource type with the\nexternal-id 21PT0293, then the value would be set to \"21PT029\", and the type would be set to \"timeseries\". There\nare no referential integrity guarantees for this, and the client should handle if the time series has been removed\nor the client may not have access to it.\n\nCurrently, time series, sequence and file references are supported.\n", + "title": "avgResult", "required": [ - "type" + "avg" ], "properties": { - "type": { - "type": "string", - "enum": [ - "timeseries", - "file", - "sequence" - ] - }, - "list": { - "description": "Specifies that the data type is a list of values. The ordering of values is preserved.\n", - "type": "boolean", - "default": false + "avg": { + "type": "number", + "description": "The average value from the data stored by the specified in the request property.\n", + "example": 42.7 } } }, - "ViewDirectNodeRelation": { - "description": "Direct node relation. Can include a hint to specify the view that this direct relation points to. This hint is optional.", - "allOf": [ - { - "$ref": "#/components/schemas/DirectNodeRelation" - }, - { - "type": "object", - "properties": { - "source": { - "description": "The hint showing the view what the direct relation points to.", - "allOf": [ - { - "$ref": "#/components/schemas/ViewReference" - } - ] - } - } + "CountAggregateResultIla": { + "type": "object", + "title": "countResult", + "required": [ + "count" + ], + "properties": { + "count": { + "type": "integer", + "format": "int64", + "description": "The number of non-null values for specified in the request property.\n", + "example": 42 } - ] + } }, - "DirectNodeRelation": { + "MinAggregateResultIla": { "type": "object", - "description": "Direct node relation", + "title": "minResult", "required": [ - "type" + "min" ], "properties": { - "type": { - "type": "string", - "enum": [ - "direct" - ] - }, - "container": { - "description": "The (optional) required type for the node the direct relation points to. If specified, the node must exist before the direct relation is referenced and of the specified type. If no container specification is used, the node will be auto created with the built-in ```node``` container type, and it does not explicitly have to be created before the node that references it.", - "allOf": [ - { - "$ref": "#/components/schemas/ContainerReference" - } - ] + "min": { + "type": "number", + "description": "The lowest - min - value for the specified in the request property.\n", + "example": 13.42 } } }, - "InstanceType": { - "description": "The type of instance", - "type": "string", - "default": "node", - "enum": [ - "node", - "edge" - ] + "MaxAggregateResultIla": { + "type": "object", + "title": "maxResult", + "required": [ + "max" + ], + "properties": { + "max": { + "type": "number", + "description": "The highest - max - value for the specified in the request property.\n", + "example": 77.7 + } + } }, - "ViewOrContainer": { + "SumAggregateResultIla": { "type": "object", - "description": "View or container holding properties", - "additionalProperties": { - "description": "Properties in the view/container of the instance", - "x-additionalPropertiesName": "view-or-container-identifier", - "allOf": [ - { - "$ref": "#/components/schemas/PropertyValueGroupV3" + "title": "sumResult", + "required": [ + "sum" + ], + "properties": { + "sum": { + "type": "number", + "description": "The sum from the values of the specified in the request property.\n", + "example": 777 + } + } + }, + "UniqueValuesAggregateResultIla": { + "type": "object", + "title": "uniqueValuesResult", + "properties": { + "buckets": { + "type": "array", + "description": "Unique value buckets on of the specified in the request property.\n", + "items": { + "type": "object", + "required": [ + "count", + "value" + ], + "properties": { + "count": { + "type": "integer", + "format": "int64", + "description": "The count of items with the value in the property.\n", + "example": 42 + }, + "value": { + "title": "aggregateValue", + "allOf": [ + { + "$ref": "#/components/schemas/AggregateValue" + } + ] + }, + "aggregates": { + "allOf": [ + { + "$ref": "#/components/schemas/AggregatesResultDefinitionIla" + } + ] + } + } } - ] + } } }, - "UsedFor": { - "type": "string", - "description": "Should this operation apply to nodes, edges or both.", - "enum": [ - "node", - "edge", - "all" - ], - "default": "node" + "NumberHistogramAggregateResultIla": { + "type": "object", + "title": "numberHistogramResult", + "properties": { + "buckets": { + "type": "array", + "description": "The histogram from the values of the specified in the request property.\n", + "items": { + "type": "object", + "required": [ + "count", + "intervalStart" + ], + "properties": { + "count": { + "type": "integer", + "format": "int64", + "description": "The count of items with the value from the bucket interval in the property.\n", + "example": 100 + }, + "intervalStart": { + "type": "number", + "description": "The number which represents the start of the bucket interval (the next bucket start point is the end point for this bucket).\n", + "example": 42.7 + }, + "aggregates": { + "allOf": [ + { + "$ref": "#/components/schemas/AggregatesResultDefinitionIla" + } + ] + } + } + } + } + } }, - "DMSFilterProperty": { - "title": "property", - "description": "Property you want to filter. Use a list of strings to specify nested properties.\n\nExample:\n\nYou have the object\n```\n{\n \"room\": {\n \"id\": \"b53\"\n },\n \"roomId\": \"a23\"\n}\n```\n\nUse `[\"room\", \"id\"]` to return the value in the nested `id` property, which is a part of the `room` object.\n\nYou can also read the value(s) in the standalone property `roomId` with `[\"roomId\"]`.\n", - "type": "array", - "minItems": 1, - "maxItems": 3, - "items": { - "type": "string" + "TimeHistogramAggregateResultIla": { + "type": "object", + "title": "timeHistogramResult", + "properties": { + "buckets": { + "type": "array", + "description": "The histogram from the values of the specified in the request property.\n", + "items": { + "type": "object", + "required": [ + "count", + "intervalStart" + ], + "properties": { + "count": { + "type": "integer", + "format": "int64", + "description": "The count of items with the value from the bucket interval in the property.\n", + "example": 100 + }, + "intervalStart": { + "type": "string", + "description": "The time point which represent the start of the bucket interval (the next bucket start point is the end point for this bucket).\n", + "example": "2024-05-16T00:00:00Z" + }, + "aggregates": { + "allOf": [ + { + "$ref": "#/components/schemas/AggregatesResultDefinitionIla" + } + ] + } + } + } + } } }, - "DMSExistsFilter": { + "Log": { "type": "object", - "title": "exists", + "title": "logItem", + "description": "Log item.\n", "required": [ - "exists" + "space", + "createdTime", + "properties" ], "properties": { - "exists": { - "required": [ - "property" - ], - "description": "Will match items that have a value in the specified property.\n", - "type": "object", - "properties": { - "property": { - "$ref": "#/components/schemas/DMSFilterProperty" + "space": { + "description": "Id of the space that the ```log``` belongs to.\n", + "example": "mySpace", + "allOf": [ + { + "$ref": "#/components/schemas/SpaceSpecification" + } + ] + }, + "createdTime": { + "title": "createdTime", + "example": 1720616232, + "allOf": [ + { + "$ref": "#/components/schemas/EpochTimestamp" } + ] + }, + "properties": { + "type": "object", + "title": "spaceToContainers", + "description": "Spaces to containers to properties and their values for the requested containers.\n", + "uniqueItems": true, + "additionalProperties": { + "x-additionalPropertiesName": "space-name", + "allOf": [ + { + "$ref": "#/components/schemas/ContainerWithData" + } + ] } } } }, + "ContainerWithData": { + "type": "object", + "title": "containerToProperties", + "description": "Container holding properties.\n", + "uniqueItems": true, + "additionalProperties": { + "description": "Properties in the container of the ```log```.\n", + "x-additionalPropertiesName": "container-identifier", + "title": "propertyToValues", + "allOf": [ + { + "$ref": "#/components/schemas/PropertyValueGroupV3" + } + ] + } + }, "EventType": { "maxLength": 64, "type": "string", @@ -29885,7 +34133,7 @@ "properties": { "property": { "type": "array", - "description": "It's an array of strings to allow specifying nested properties.\n\nSupported properties: \n| Property | Type |\n|---------------------------------|------------------------------|\n| `[\"assetIds\"]` | array of [number] |\n| `[\"dataSetId\"]` | number |\n| `[\"description\"]` | string |\n| `[\"source\"]` | string |\n| `[\"subtype\"]` | string |\n| `[\"type\"]` | string |\n| `[\"metadata\"]` | string |\n| `[\"metadata\", ]` | string |\n", + "description": "It's an array of strings to allow specifying nested properties.\n\nSupported properties:\\\n| Property | Type |\n|---------------------------------|------------------------------|\n| `[\"assetIds\"]` | array of [number] |\n| `[\"dataSetId\"]` | number |\n| `[\"description\"]` | string |\n| `[\"source\"]` | string |\n| `[\"subtype\"]` | string |\n| `[\"type\"]` | string |\n| `[\"metadata\"]` | string |\n| `[\"metadata\", ]` | string |\n", "minItems": 1, "maxItems": 2, "items": { @@ -29912,7 +34160,7 @@ ], "properties": { "fields": { - "description": "This field is deprecated. Use the `properties` field instead. \nThe field name(s) to apply the aggregation on. Currently limited to one field.\nAccepts the following field names: `type`, `subtype`, `dataSetId` and metadata fields, for example, `metadata.FooBar`.\n", + "description": "This field is deprecated. Use the `properties` field instead.\\\nThe field name(s) to apply the aggregation on. Currently limited to one field.\nAccepts the following field names: `type`, `subtype`, `dataSetId` and metadata fields, for example, `metadata.FooBar`.\n", "deprecated": true, "type": "array", "maxItems": 1, @@ -30073,7 +34321,7 @@ } }, "EventLeafFilter": { - "description": "Leaf filter. ", + "description": "Leaf filter.", "title": "LeafFilter", "type": "object", "oneOf": [ @@ -30632,6 +34880,32 @@ } ] }, + "InstanceId": { + "type": "object", + "required": [ + "space", + "externalId" + ], + "properties": { + "space": { + "$ref": "#/components/schemas/InstanceSpace" + }, + "externalId": { + "$ref": "#/components/schemas/InstanceExternalId" + } + } + }, + "FileInstanceId": { + "type": "object", + "required": [ + "instanceId" + ], + "properties": { + "instanceId": { + "$ref": "#/components/schemas/InstanceId" + } + } + }, "FileInternalId": { "type": "object", "properties": { @@ -30648,7 +34922,30 @@ } } }, + "FileExternalIdEither": { + "oneOf": [ + { + "$ref": "#/components/schemas/FileExternalId" + }, + { + "$ref": "#/components/schemas/FileInstanceId" + } + ] + }, "FileIdEither": { + "oneOf": [ + { + "$ref": "#/components/schemas/FileInternalId" + }, + { + "$ref": "#/components/schemas/FileExternalId" + }, + { + "$ref": "#/components/schemas/FileInstanceId" + } + ] + }, + "FileDeleteByIdEither": { "oneOf": [ { "$ref": "#/components/schemas/FileInternalId" @@ -30781,6 +35078,9 @@ }, "lastUpdatedTime": { "$ref": "#/components/schemas/EpochTimestamp" + }, + "instanceId": { + "$ref": "#/components/schemas/InstanceId" } } } @@ -30900,6 +35200,9 @@ }, { "$ref": "#/components/schemas/FileChangeUpdateByExternalId" + }, + { + "$ref": "#/components/schemas/FileChangeUpdateByInstanceId" } ] }, @@ -30939,6 +35242,16 @@ } ] }, + "FileChangeUpdateByInstanceId": { + "allOf": [ + { + "$ref": "#/components/schemas/FileInstanceId" + }, + { + "$ref": "#/components/schemas/DMSFileChange" + } + ] + }, "DataFileMetadata": { "type": "object", "properties": { @@ -30950,6 +35263,28 @@ } } }, + "DataFileUploadFileMetadata": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UploadFileMetadata" + } + } + } + }, + "DataMultiPartUploadFileMetadata": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MultiPartUploadFileMetadata" + } + } + } + }, "FileLink": { "type": "object", "properties": { @@ -30969,6 +35304,30 @@ } } }, + "FileDeleteByIds": { + "type": "object", + "allOf": [ + { + "type": "object", + "required": [ + "items" + ], + "properties": { + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FileDeleteByIdEither" + }, + "maxItems": 1000, + "minItems": 1 + } + } + }, + { + "$ref": "#/components/schemas/IgnoreUnknownIdsField" + } + ] + }, "FileDataIds": { "type": "object", "properties": { @@ -31000,6 +35359,15 @@ } } }, + "FileSelectByInstanceId": { + "type": "object", + "title": "Select by InstanceId", + "properties": { + "instanceId": { + "$ref": "#/components/schemas/InstanceId" + } + } + }, "FileSelectEither": { "oneOf": [ { @@ -31007,6 +35375,9 @@ }, { "$ref": "#/components/schemas/FileSelectByExternalId" + }, + { + "$ref": "#/components/schemas/FileSelectByInstanceId" } ] }, @@ -31034,6 +35405,22 @@ } ] }, + "FileDataUploadIds": { + "type": "object", + "required": [ + "items" + ], + "properties": { + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FileExternalIdEither" + }, + "minItems": 1, + "maxItems": 1 + } + } + }, "FileLinkIds": { "type": "object", "properties": { @@ -31118,6 +35505,52 @@ } } }, + "DMSFileChange": { + "type": "object", + "description": "Changes will be applied to file.", + "required": [ + "update" + ], + "properties": { + "update": { + "type": "object", + "properties": { + "externalId": { + "$ref": "#/components/schemas/SinglePatchString" + }, + "metadata": { + "allOf": [ + { + "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." + }, + { + "$ref": "#/components/schemas/ObjectPatch" + } + ] + }, + "assetIds": { + "allOf": [ + { + "description": "Edit the set of assetIds for the file. Minimum 0, maximum 1000. See examples in the description for the updateFiles operation." + }, + { + "$ref": "#/components/schemas/ArrayPatchLong" + } + ] + }, + "dataSetId": { + "$ref": "#/components/schemas/SinglePatchLong" + }, + "labels": { + "$ref": "#/components/schemas/LabelsPatch" + }, + "geoLocation": { + "$ref": "#/components/schemas/SinglePatchGeoLocation" + } + } + } + } + }, "DataWithCursor": { "type": "object", "properties": { @@ -32087,7 +36520,7 @@ }, "secrets": { "type": "object", - "description": "Object with additional secrets as key/value pairs. These can e.g. password to simulators or other data sources. Keys must be lowercase characters, numbers or dashes (-) and at most 15 characters. You can create at most 30 secrets, all keys must be unique, and cannot be `token`, `indexUrl`, or `extraIndexUrls`. The secrets are returned scrambled if set.", + "description": "Object with additional secrets as key/value pairs. These can e.g. password to simulators or other data sources. Keys must be lowercase characters, numbers or dashes (-) and at most 15 characters. You can create at most 30 secrets, all keys must be unique, and cannot be `token`, `indexUrl`, or `extraIndexUrls`. For each secret, the combined size of the secret name and secret value is limited by 25 kB. The secrets are returned scrambled if set.", "maxProperties": 30, "additionalProperties": { "type": "string" @@ -32130,16 +36563,15 @@ "example": "py311", "default": "py311", "enum": [ - "py38", "py39", "py310", "py311" ], - "description": "The runtime of the function. For exmple, runtime \"py38\" translates to the latest version of the Python 3.8 series." + "description": "The runtime of the function. For exmple, runtime \"py311\" translates to the latest version of the Python 3.11 series." }, "runtimeVersion": { "type": "string", - "example": "Python 3.8.13", + "example": "Python 3.11.10", "readOnly": true, "description": "The complete specification of the function runtime with major, minor and patch version numbers." }, @@ -33308,15 +37740,15 @@ ], "title": "DatapointsWithInternalId", "allOf": [ - { - "$ref": "#/components/schemas/DatapointsInsertProperties" - }, { "properties": { "id": { "$ref": "#/components/schemas/CogniteInternalId" } } + }, + { + "$ref": "#/components/schemas/DatapointsInsertProperties" } ] }, @@ -33326,15 +37758,33 @@ ], "title": "DatapointsWithExternalId", "allOf": [ - { - "$ref": "#/components/schemas/DatapointsInsertProperties" - }, { "properties": { "externalId": { "$ref": "#/components/schemas/CogniteExternalId" } } + }, + { + "$ref": "#/components/schemas/DatapointsInsertProperties" + } + ] + }, + { + "required": [ + "instanceId" + ], + "title": "DatapointsWithInstanceId", + "allOf": [ + { + "properties": { + "instanceId": { + "$ref": "#/components/schemas/CogniteInstanceId" + } + } + }, + { + "$ref": "#/components/schemas/DatapointsInsertProperties" } ] } @@ -33394,13 +37844,19 @@ }, "granularity": { "type": "string", - "description": "The time granularity size and unit to aggregate over. Valid entries are 'day, hour, minute, second', or short forms 'd, h, m, s', or a multiple of these indicated by a number as a prefix. For 'second' and 'minute', the multiple must be an integer between 1 and 120 inclusive; for 'hour' and 'day', the multiple must be an integer between 1 and 100000 inclusive. For example, a granularity '5m' means that aggregates are calculated over 5 minutes. This field is required if aggregates are specified.", + "description": "The time granularity size and unit to aggregate over. Valid entries are 'month, day, hour, minute, second', or short forms 'mo, d, h, m, s', or a multiple of these indicated by a number as a prefix. For 'second' and 'minute', the multiple must be an integer between 1 and 120 inclusive; for 'hour', 'day', and 'month', the multiple must be an integer between 1 and 100000 inclusive. For example, a granularity '5m' means that aggregates are calculated over 5 minutes. This field is required if aggregates are specified.", "example": "1h" }, "includeOutsidePoints": { "type": "boolean", - "description": "Defines whether to include the last data point before the requested time period and the first one after. This option can be useful for interpolating data. It's not available for aggregates or cursors.\nNote: If there are more than `limit` data points in the time period, we will omit the excess data points and then append the first data point after the time period, thus causing a gap with omitted data points. When this is the case, we return up to `limit+2` data points.\nWhen doing manual paging (sequentially requesting smaller intervals instead of requesting a larger interval and using cursors to get all the data points) with this field set to true, the `start` of the each subsequent request should be one millisecond more than the `timestamp` of the _second-to-last_ data point from the previous response. This is because the last data point in most cases will be the extra point from outside the interval.\n", + "description": "Defines whether to include the last data point before the requested\ntime period and the first one after. This option can be\nuseful for interpolating data. It's not available for aggregates or cursors.\n\nNote: If there are more than `limit` data points in the time period, we will omit\nthe excess data points and then append the first data point after the time period,\nthus causing a gap with omitted data points. When this is the case, we return\nup to `limit+2` data points.\n\nWhen doing manual paging (sequentially requesting smaller intervals instead of\nrequesting a larger interval and using cursors to get all the data points) with this\nfield set to true, the `start` of the each subsequent request should be one\nmillisecond more than the `timestamp` of the _second-to-last_ data point from the\nprevious response. This is because the last data point in most cases will be the\nextra point from outside the interval.", "default": false + }, + "timeZone": { + "type": "string", + "description": "For aggregates of granularity 'hour' and longer, which [time zone]() should we align to.\nAlign to the start of the hour, start of the day or start of the month.\nFor time zones of type Region/Location, the aggregate duration can vary, typically due to daylight saving time.\nFor time zones of type UTC+/-HH:MM, use increments of 15 minutes.\n\nNote: Time zones with minute offsets (e.g. UTC+05:30 or Asia/Kolkata) may take longer to execute. Historical time zones, with offsets not multiples of 15 minutes, are not supported.", + "default": "UTC", + "example": "Europe/Oslo or UTC+05:30" } } }, @@ -33419,15 +37875,15 @@ ], "title": "QueryWithInternalId", "allOf": [ - { - "$ref": "#/components/schemas/DatapointsQueryProperties" - }, { "properties": { "id": { "$ref": "#/components/schemas/CogniteInternalId" } } + }, + { + "$ref": "#/components/schemas/DatapointsQueryProperties" } ] }, @@ -33437,15 +37893,33 @@ ], "title": "QueryWithExternalId", "allOf": [ - { - "$ref": "#/components/schemas/DatapointsQueryProperties" - }, { "properties": { "externalId": { "$ref": "#/components/schemas/CogniteExternalId" } } + }, + { + "$ref": "#/components/schemas/DatapointsQueryProperties" + } + ] + }, + { + "required": [ + "instanceId" + ], + "title": "QueryWithInstanceId", + "allOf": [ + { + "properties": { + "instanceId": { + "$ref": "#/components/schemas/CogniteInstanceId" + } + } + }, + { + "$ref": "#/components/schemas/DatapointsQueryProperties" } ] } @@ -33501,7 +37975,7 @@ }, "ignoreBadDataPoints": { "type": "boolean", - "description": "Treat data points with a _Bad_ status code as if they do not exist.\n\nIf set to false, raw queries will include bad data points in the response, and\naggregates will in general omit the time period between a bad data point and the next good data point.\nAlso, the period between a bad data point and the previous good data point will be considered constant.", + "description": "Treat data points with a _Bad_ status code as if they do not exist.\n\nIf set to false, raw queries will include bad data points in the response, and\naggregates will in general omit the time period between a bad data point and the next good data point.\nAlso, the period between a bad data point and the previous good data point will be considered constant.\n\nNote that bad data points may contain the string values 'NaN', 'Infinity', or '-Infinity', or be null (omitted).", "default": true }, "treatUncertainAsBad": { @@ -33512,6 +37986,12 @@ "cursor": { "type": "string", "description": "To retrieve next page, insert the `nextCursor` from a previous response. Be sure to match with the corresponding time series. Not compatible with `includeOutsidePoints`.\n" + }, + "timeZone": { + "type": "string", + "description": "Which time zone to align aggregates to. Omit to use top-level value.\n", + "default": "UTC", + "example": "Europe/Oslo or UTC+05:30" } } }, @@ -33550,15 +38030,15 @@ ], "title": "QueryWithInternalId", "allOf": [ - { - "$ref": "#/components/schemas/LatestDataPropertyFilter" - }, { "properties": { "id": { "$ref": "#/components/schemas/CogniteInternalId" } } + }, + { + "$ref": "#/components/schemas/LatestDataPropertyFilter" } ] }, @@ -33568,15 +38048,33 @@ ], "title": "QueryWithExternalId", "allOf": [ - { - "$ref": "#/components/schemas/LatestDataPropertyFilter" - }, { "properties": { "externalId": { "$ref": "#/components/schemas/CogniteExternalId" } } + }, + { + "$ref": "#/components/schemas/LatestDataPropertyFilter" + } + ] + }, + { + "required": [ + "instanceId" + ], + "title": "QueryWithInstanceId", + "allOf": [ + { + "properties": { + "instanceId": { + "$ref": "#/components/schemas/CogniteInstanceId" + } + } + }, + { + "$ref": "#/components/schemas/LatestDataPropertyFilter" } ] } @@ -33606,7 +38104,7 @@ }, "ignoreBadDataPoints": { "type": "boolean", - "description": "Treat data points with a _Bad_ status code as if they do not exist.\nSet to false to include all data points.", + "description": "Treat data points with a _Bad_ status code as if they do not exist.\nSet to false to include all data points.\n\nNote that bad data points may contain the string values 'NaN', 'Infinity', or '-Infinity', or be null (omitted).", "default": true }, "treatUncertainAsBad": { @@ -33643,15 +38141,15 @@ ], "title": "QueryWithInternalId", "allOf": [ - { - "$ref": "#/components/schemas/DatapointsDeleteRange" - }, { "properties": { "id": { "$ref": "#/components/schemas/CogniteInternalId" } } + }, + { + "$ref": "#/components/schemas/DatapointsDeleteRange" } ] }, @@ -33661,15 +38159,33 @@ ], "title": "QueryWithExternalId", "allOf": [ - { - "$ref": "#/components/schemas/DatapointsDeleteRange" - }, { "properties": { "externalId": { "$ref": "#/components/schemas/CogniteExternalId" } } + }, + { + "$ref": "#/components/schemas/DatapointsDeleteRange" + } + ] + }, + { + "required": [ + "instanceId" + ], + "title": "QueryWithInstanceId", + "allOf": [ + { + "properties": { + "instanceId": { + "$ref": "#/components/schemas/CogniteInstanceId" + } + } + }, + { + "$ref": "#/components/schemas/DatapointsDeleteRange" } ] } @@ -33688,6 +38204,51 @@ } } }, + "TimeSeriesLookupByIdWithoutInstanceId": { + "type": "object", + "allOf": [ + { + "type": "object", + "required": [ + "items" + ], + "properties": { + "items": { + "uniqueItems": true, + "type": "array", + "description": "List of ID objects.", + "items": { + "oneOf": [ + { + "type": "object", + "title": "QueryWithInternalId", + "properties": { + "id": { + "$ref": "#/components/schemas/CogniteInternalId" + } + } + }, + { + "type": "object", + "title": "QueryWithExternalId", + "properties": { + "externalId": { + "$ref": "#/components/schemas/CogniteExternalId" + } + } + } + ] + }, + "maxItems": 1000, + "minItems": 1 + } + } + }, + { + "$ref": "#/components/schemas/IgnoreUnknownIdsField" + } + ] + }, "TimeSeriesLookupById": { "type": "object", "allOf": [ @@ -33720,6 +38281,15 @@ "$ref": "#/components/schemas/CogniteExternalId" } } + }, + { + "type": "object", + "title": "QueryWithInstanceId", + "properties": { + "instanceId": { + "$ref": "#/components/schemas/CogniteInstanceId" + } + } } ] }, @@ -33788,14 +38358,14 @@ }, { "$ref": "#/components/schemas/TimeSeriesUpdateByExternalId" + }, + { + "$ref": "#/components/schemas/TimeSeriesUpdateByInstanceId" } ] }, "TimeSeriesUpdateById": { "allOf": [ - { - "$ref": "#/components/schemas/TimeSeriesPatch" - }, { "type": "object", "required": [ @@ -33806,14 +38376,14 @@ "$ref": "#/components/schemas/CogniteInternalId" } } + }, + { + "$ref": "#/components/schemas/TimeSeriesPatch" } ] }, "TimeSeriesUpdateByExternalId": { "allOf": [ - { - "$ref": "#/components/schemas/TimeSeriesPatch" - }, { "type": "object", "required": [ @@ -33824,6 +38394,27 @@ "$ref": "#/components/schemas/CogniteExternalId" } } + }, + { + "$ref": "#/components/schemas/TimeSeriesPatch" + } + ] + }, + "TimeSeriesUpdateByInstanceId": { + "allOf": [ + { + "type": "object", + "required": [ + "instanceId" + ], + "properties": { + "instanceId": { + "$ref": "#/components/schemas/CogniteInstanceId" + } + } + }, + { + "$ref": "#/components/schemas/TimeSeriesPatchDM" } ] }, @@ -33871,6 +38462,32 @@ } } }, + "TimeSeriesPatchDM": { + "type": "object", + "description": "Changes will be applied to time series. Note that these changes will not be visible in data modeling.", + "required": [ + "update" + ], + "properties": { + "update": { + "type": "object", + "properties": { + "externalId": { + "$ref": "#/components/schemas/NullableSinglePatchString" + }, + "metadata": { + "$ref": "#/components/schemas/ObjectPatch" + }, + "assetId": { + "$ref": "#/components/schemas/NullableSinglePatchLong" + }, + "dataSetId": { + "$ref": "#/components/schemas/NullableSinglePatchLong" + } + } + } + } + }, "Aggregate": { "type": "string", "enum": [ @@ -33942,7 +38559,7 @@ }, "value": { "type": "number", - "description": "The numerical data value of a numerical metric. Numerical data values can be in the range (-1e100, 1e100) The value is required unless the status is bad.\n" + "description": "The numerical data value of a numerical metric.\nNumerical data values can be in the range (-1e100, 1e100)\n\nThe value is required unless the status is bad. Bad data points may also have one\nof the three special string values: 'NaN', 'Infinity' or '-Infinity'." }, "status": { "$ref": "#/components/schemas/DatapointStatus" @@ -34261,7 +38878,7 @@ "properties": { "value": { "type": "string", - "description": "The data value. The value is required unless the status is bad.\n" + "description": "The data value. The value is required unless the status is bad.\nIf the status is bad, the value may also be null (omitted).\n" }, "status": { "$ref": "#/components/schemas/DatapointStatus" @@ -34280,7 +38897,7 @@ "properties": { "value": { "type": "number", - "description": "The data value. The value is required unless the status is bad.\n", + "description": "The data value.\nThe value is required unless the status is bad.\n\nIf the status is bad, the value may also be one of the 3 special string values:\n'NaN', 'Infinity' or '-Infinity'.", "format": "double" }, "status": { @@ -34407,6 +39024,9 @@ "type": "string", "description": "The externally supplied ID for the time series." }, + "instanceId": { + "$ref": "#/components/schemas/CogniteInstanceId" + }, "name": { "maxLength": 255, "type": "string", @@ -34478,6 +39098,9 @@ "maxLength": 255, "type": "string", "description": "The external ID of the time series the data points belong to." + }, + "instanceId": { + "$ref": "#/components/schemas/CogniteInstanceId" } } }, @@ -35107,7 +39730,7 @@ "type": "array", "minItems": 1, "maxItems": 1, - "description": "
\n\nSubscription definitions. A subscription may be configured explicitly with a list\nof time series, or it may be a configured dynamically through a filter. The\nsubscription cannot change type later.\n\nAn explicit list must be manually updated by the user, while a filter will be updated\nautomatically whenever a time series is added/deleted/updated (eventually consistent).\n\nThe filter subscriptions uses the same syntax as advanced filters in the _Filter time series_\nendpoint, with two exceptions: The field is named `filter` instead of `advancedFilter`,\nand we do not support the `search` LeafFilter.\n\n\n### Advanced filtering\n\nThe `filter`\nfield lets you create complex filtering expressions that combine simple operations,\nsuch as `equals`, `prefix`, and `exists`, by using the Boolean operators `and`, `or`, and `not`.\nFiltering applies to basic fields as well as metadata. See the `advancedFilter` syntax in the request example.\n\n\n\n#### Supported leaf filters\n\n| Leaf filter | Supported fields | Description and example |\n|----------------|------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `containsAll` | Array type fields | Only includes results which contain all of the specified values.
`{\"containsAll\": {\"property\": [\"property\"], \"values\": [1, 2, 3]}}` |\n| `containsAny` | Array type fields | Only includes results which contain at least one of the specified values.
`{\"containsAny\": {\"property\": [\"property\"], \"values\": [1, 2, 3]}}` |\n| `equals` | Non-array type fields | Only includes results that are equal to the specified value.
`{\"equals\": {\"property\": [\"property\"], \"value\": \"example\"}}` |\n| `exists` | All fields | Only includes results where the specified property exists (has a value).
`{\"exists\": {\"property\": [\"property\"]}}` |\n| `in` | Non-array type fields | Only includes results that are equal to one of the specified values.
`{\"in\": {\"property\": [\"property\"], \"values\": [1, 2, 3]}}` |\n| `prefix` | String type fields | Only includes results which start with the specified text.
`{\"prefix\": {\"property\": [\"property\"], \"value\": \"example\"}}` |\n| `range` | Non-array type fields | Only includes results that fall within the specified range.
`{\"range\": {\"property\": [\"property\"], \"gt\": 1, \"lte\": 5}}`
Supported operators: `gt`, `lt`, `gte`, `lte` |\n\n#### Supported properties\n\n| Property | Type |\n|-----------------------------------|--------------------|\n| `[\"description\"]` | string |\n| `[\"externalId\"]` | string |\n| `[\"metadata\", \"\"]` | string |\n| `[\"name\"]` | string |\n| `[\"unit\"]` | string |\n| `[\"unitExternalId\"]` | string |\n| `[\"unitQuantity\"]` | string |\n| `[\"assetId\"]` | number |\n| `[\"assetRootId\"]` | number |\n| `[\"createdTime\"]` | number |\n| `[\"dataSetId\"]` | number |\n| `[\"id\"]` | number |\n| `[\"lastUpdatedTime\"]` | number |\n| `[\"isStep\"]` | Boolean |\n| `[\"isString\"]` | Boolean |\n\n#### Limits\n\n- Filter query max depth: 10.\n- Filter query max number of clauses: 100.\n- `and` and `or` clauses must have at least one element (and at most 99, since each element counts\n towards the total clause limit, and so does the `and`/`or` clause itself).\n- The `property` array of each leaf filter has the following limitations:\n - Number of elements in the array is 1 or 2.\n - Elements must not be null or blank.\n - Each element max length is 256 characters.\n - The `property` array must match one of the existing properties (static top-level property or dynamic metadata property).\n- `containsAll`, `containsAny`, and `in` filter `values` array size must be in the range [1, 100].\n- `containsAll`, `containsAny`, and `in` filter `values` array must contain elements of number or string type (matching the type of the given property).\n- `range` filter must have at lest one of `gt`, `gte`, `lt`, `lte` attributes.\n But `gt` is mutually exclusive to `gte`, while `lt` is mutually exclusive to `lte`.\n- `gt`, `gte`, `lt`, `lte` in the `range` filter must be of number or string type (matching the type of the given property).\n- The maximum length of the `value` of a leaf filter that is applied to a string property is 256.\n\n
", + "description": "
\n\nSubscription definitions. A subscription may be configured explicitly with a list\nof time series, or it may be a configured dynamically through a filter. The\nsubscription cannot change type later.\n\nAn explicit list must be manually updated by the user, while a filter will be updated\nautomatically whenever a time series is added/deleted/updated (eventually consistent).\n\nThe filter subscriptions uses the same syntax as advanced filters in the _Filter time series_\nendpoint, with two exceptions: The field is named `filter` instead of `advancedFilter`,\nand we do not support the `search` LeafFilter.\n\n\n### Advanced filtering\n\nThe `filter`\nfield lets you create complex filtering expressions that combine simple operations,\nsuch as `equals`, `prefix`, and `exists`, by using the Boolean operators `and`, `or`, and `not`.\nFiltering applies to basic fields as well as metadata. See the `advancedFilter` syntax in the request example.\n\n\n\n#### Supported leaf filters\n\n| Leaf filter | Supported fields | Description and example |\n|----------------|------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `containsAll` | Array type fields | Only includes results which contain all of the specified values.
`{\"containsAll\": {\"property\": [\"property\"], \"values\": [1, 2, 3]}}` |\n| `containsAny` | Array type fields | Only includes results which contain at least one of the specified values.
`{\"containsAny\": {\"property\": [\"property\"], \"values\": [1, 2, 3]}}` |\n| `equals` | Non-array type fields | Only includes results that are equal to the specified value.
`{\"equals\": {\"property\": [\"property\"], \"value\": \"example\"}}` |\n| `exists` | All fields | Only includes results where the specified property exists (has a value).
`{\"exists\": {\"property\": [\"property\"]}}` |\n| `in` | Non-array type fields | Only includes results that are equal to one of the specified values.
`{\"in\": {\"property\": [\"property\"], \"values\": [1, 2, 3]}}` |\n| `prefix` | String type fields | Only includes results which start with the specified text.
`{\"prefix\": {\"property\": [\"property\"], \"value\": \"example\"}}` |\n| `range` | Non-array type fields | Only includes results that fall within the specified range.
`{\"range\": {\"property\": [\"property\"], \"gt\": 1, \"lte\": 5}}`
Supported operators: `gt`, `lt`, `gte`, `lte` |\n\n#### Supported properties\n\n| Property | Type |\n|-----------------------------------|--------------------|\n| `[\"description\"]` | string |\n| `[\"externalId\"]` | string |\n| `[\"metadata\", \"\"]` | string |\n| `[\"name\"]` | string |\n| `[\"unit\"]` | string |\n| `[\"unitExternalId\"]` | string |\n| `[\"unitQuantity\"]` | string |\n| `[\"instanceId\", \"space\"]` | string |\n| `[\"instanceId\", \"externalId\"]` | string |\n| `[\"assetId\"]` | number |\n| `[\"assetRootId\"]` | number |\n| `[\"createdTime\"]` | number |\n| `[\"dataSetId\"]` | number |\n| `[\"id\"]` | number |\n| `[\"lastUpdatedTime\"]` | number |\n| `[\"isStep\"]` | Boolean |\n| `[\"isString\"]` | Boolean |\n\n#### Limits\n\n- Filter query max depth: 10.\n- Filter query max number of clauses: 100.\n- `and` and `or` clauses must have at least one element (and at most 99, since each element counts\n towards the total clause limit, and so does the `and`/`or` clause itself).\n- The `property` array of each leaf filter has the following limitations:\n - Number of elements in the array is 1 or 2.\n - Elements must not be null or blank.\n - Each element max length is 256 characters.\n - The `property` array must match one of the existing properties (static top-level property or dynamic metadata property).\n- `containsAll`, `containsAny`, and `in` filter `values` array size must be in the range [1, 100].\n- `containsAll`, `containsAny`, and `in` filter `values` array must contain elements of number or string type (matching the type of the given property).\n- `range` filter must have at lest one of `gt`, `gte`, `lt`, `lte` attributes.\n But `gt` is mutually exclusive to `gte`, while `lt` is mutually exclusive to `lte`.\n- `gt`, `gte`, `lt`, `lte` in the `range` filter must be of number or string type (matching the type of the given property).\n- The maximum length of the `value` of a leaf filter that is applied to a string property is 256.\n\n
", "items": { "type": "object", "required": [ @@ -35148,6 +39771,15 @@ "$ref": "#/components/schemas/CogniteExternalId" } }, + "instanceIds": { + "type": "array", + "description": "List of instance ids of time series that this subscription will listen to. Not compatible with filter.", + "minItems": 1, + "maxItems": 100, + "items": { + "$ref": "#/components/schemas/CogniteInstanceId" + } + }, "filter": { "$ref": "#/components/schemas/SubscriptionFilterLanguage" } @@ -35221,6 +39853,9 @@ }, "id": { "$ref": "#/components/schemas/CogniteInternalId" + }, + "instanceId": { + "$ref": "#/components/schemas/CogniteInstanceId" } } }, @@ -35366,6 +40001,47 @@ } ] }, + "instanceIds": { + "description": "Update subscription definition (not applicable for filter subscriptions).", + "type": "object", + "oneOf": [ + { + "properties": { + "add": { + "type": "array", + "description": "List of instance ids of time series to add to the subscription.", + "minItems": 1, + "maxItems": 100, + "items": { + "$ref": "#/components/schemas/CogniteInstanceId" + } + }, + "remove": { + "type": "array", + "description": "List of instance ids of time series to remove from the subscription.", + "minItems": 1, + "maxItems": 100, + "items": { + "$ref": "#/components/schemas/CogniteInstanceId" + } + } + } + }, + { + "properties": { + "set": { + "type": "array", + "description": "Replace the subscription's current list of time series with this list of instance ids.", + "minItems": 1, + "maxItems": 100, + "items": { + "$ref": "#/components/schemas/CogniteInstanceId" + } + } + } + } + ] + }, "name": { "$ref": "#/components/schemas/NullableSinglePatchString" }, @@ -35672,6 +40348,67 @@ } } }, + "NotFoundResponseWithoutInstanceId": { + "type": "object", + "required": [ + "error" + ], + "properties": { + "error": { + "type": "object", + "description": "Error details.", + "required": [ + "code", + "message", + "missing" + ], + "properties": { + "code": { + "type": "integer", + "description": "HTTP status code", + "format": "int32", + "example": 400 + }, + "message": { + "type": "string", + "description": "Error message." + }, + "missing": { + "uniqueItems": true, + "type": "array", + "description": "Items that are not found.", + "items": { + "description": "Ids, ExternalIds or InstanceIds that are not found.", + "oneOf": [ + { + "type": "object", + "required": [ + "id" + ], + "properties": { + "id": { + "$ref": "#/components/schemas/CogniteInternalId" + } + } + }, + { + "type": "object", + "required": [ + "externalId" + ], + "properties": { + "externalId": { + "$ref": "#/components/schemas/CogniteExternalId" + } + } + } + ] + } + } + } + } + } + }, "NotFoundResponse": { "type": "object", "required": [ @@ -35702,10 +40439,11 @@ "type": "array", "description": "Items that are not found.", "items": { - "description": "Ids or ExternalIds that are not found.", + "description": "Ids, ExternalIds or InstanceIds that are not found.", "oneOf": [ { "type": "object", + "title": "id", "required": [ "id" ], @@ -35717,6 +40455,7 @@ }, { "type": "object", + "title": "externalId", "required": [ "externalId" ], @@ -35725,6 +40464,18 @@ "$ref": "#/components/schemas/CogniteExternalId" } } + }, + { + "type": "object", + "title": "instanceId", + "required": [ + "instanceId" + ], + "properties": { + "instanceId": { + "$ref": "#/components/schemas/CogniteInstanceId" + } + } } ] } @@ -36208,7 +40959,7 @@ } }, "TimeSeriesFilterProperty": { - "description": "The property on which you want to filter. May be either:\n- A single-element list that contains the name of one of the predefined top-level\n properties, in which case the filter will be applied to that top-level property.\n- A single-element list that contains `'metadata'`, in which case the filter will be applied\n to _all_ metadata properties.\n- A two-element list where the first element is `'metadata'` and the second one is any\n string, in which case the filter will be applied to metadata properties with that name.\n", + "description": "The property on which you want to filter. May be either:\n- A single-element list that contains the name of one of the predefined top-level\n properties, in which case the filter will be applied to that top-level property.\n- A single-element list that contains `'metadata'`, in which case the filter will be applied\n to _all_ metadata properties.\n- A two-element list where the first element is `'metadata'` and the second one is any\n string, in which case the filter will be applied to metadata properties with that name.\n- A two-element list where the first element is `'instanceId'` and the second element is\n either `'space'` or `'externalId'`.\n", "type": "array", "minItems": 1, "maxItems": 2, @@ -36497,7 +41248,7 @@ "properties": { "property": { "type": "array", - "description": "Property to sort on.\nSorting can be done on the following properties:\n | Property |\n |-----------------------------------|\n | `['assetId']` |\n | `['createdTime']` |\n | `['dataSetId']` |\n | `['description']` |\n | `['externalId']` |\n | `['lastUpdatedTime']` |\n | `['metadata', '']` |\n | `['name']` |\n | `['_score_']` |", + "description": "Property to sort on.\nSorting can be done on the following properties:\n | Property |\n |-----------------------------------|\n | `['assetId']` |\n | `['createdTime']` |\n | `['dataSetId']` |\n | `['description']` |\n | `['externalId']` |\n | `['lastUpdatedTime']` |\n | `['metadata', '']` |\n | `['name']` |\n | `['_score_']` |\n | `['instanceId', 'space']` |\n | `['instanceId', 'externalId']` |", "minItems": 1, "maxItems": 2, "items": { @@ -36551,7 +41302,7 @@ "expression": { "type": "string", "description": "query definition. For limits, see the [guide to synthetic time series](https://developer.cognite.com/dev/concepts/resource_types/synthetic_timeseries.html#limits).", - "example": "(5 + TS{externalId='hello'}) / TS{id=123, aggregate='average', granularity='1h'}" + "example": "(5 + TS{externalId='hello'}) / TS{id=123, aggregate='average', granularity='1h'} * TS{space='dm space', externalId='dm id'}" }, "start": { "$ref": "#/components/schemas/TimestampOrStringStart" @@ -36566,6 +41317,12 @@ "example": 100, "minimum": 1, "maximum": 10000 + }, + "timeZone": { + "type": "string", + "description": "For aggregates of granularity 'hour' and longer, which [time zone]() should we align to. Align to the start of the hour, start of the day or start of the month. For time zones of type Region/Location, the aggregate duration can vary, typically due to daylight saving time. For time zones of type UTC+/-HH:MM, use increments of 15 minutes.\n", + "default": "UTC", + "example": "Europe/Oslo or UTC+05:30" } } }, @@ -37041,331 +41798,372 @@ "CogniteCapability": { "type": "array", "items": { - "type": "object", - "oneOf": [ - { - "title": "analyticsAcl", - "required": [ - "analyticsAcl" - ], - "properties": { - "analyticsAcl": { - "$ref": "#/components/schemas/cogniteanalytics_aclAcl" - } - } - }, - { - "title": "annotationsAcl", - "properties": { - "annotationsAcl": { - "$ref": "#/components/schemas/annotations_aclAcl" - } - } - }, - { - "title": "assetsAcl", - "required": [ - "assetsAcl" - ], - "properties": { - "assetsAcl": { - "$ref": "#/components/schemas/cogniteassets_aclAcl" - } - } - }, - { - "title": "datamodelinstancesAcl", - "required": [ - "datamodelinstancesAcl" - ], - "properties": { - "datamodelinstancesAcl": { - "$ref": "#/components/schemas/cognitedatamodelinstances_aclAcl" - } - } - }, - { - "title": "datamodelsAcl", - "required": [ - "datamodelsAcl" - ], - "properties": { - "datamodelsAcl": { - "$ref": "#/components/schemas/cognitedatamodels_aclAcl" - } - } - }, - { - "title": "datasetsAcl", - "required": [ - "datasetsAcl" - ], - "properties": { - "datasetsAcl": { - "$ref": "#/components/schemas/cognitedatasets_aclAcl" - } - } - }, - { - "title": "digitalTwinAcl", - "required": [ - "digitalTwinAcl" - ], - "properties": { - "digitalTwinAcl": { - "$ref": "#/components/schemas/cognitedigitaltwin_aclAcl" - } - } - }, - { - "title": "entityMatchingAcl", - "properties": { - "entityMatchingAcl": { - "$ref": "#/components/schemas/entitymatching_aclAcl" - } - } - }, - { - "title": "eventsAcl", - "required": [ - "eventsAcl" - ], - "properties": { - "eventsAcl": { - "$ref": "#/components/schemas/cogniteevents_aclAcl" - } - } - }, - { - "title": "extractionPipelinesAcl", - "properties": { - "extractionpipelinesAcl": { - "$ref": "#/components/schemas/extractionpipelines_aclAcl" - } - } - }, - { - "title": "extractionRunsAcl", - "properties": { - "extractionrunsAcl": { - "$ref": "#/components/schemas/extractionruns_aclAcl" - } - } - }, - { - "title": "filesAcl", - "required": [ - "filesAcl" - ], - "properties": { - "filesAcl": { - "$ref": "#/components/schemas/cognitefiles_aclAcl" - } - } - }, - { - "title": "functionsAcl", - "required": [ - "functionsAcl" - ], - "properties": { - "functionsAcl": { - "$ref": "#/components/schemas/functions_aclAcl" - } - } - }, - { - "title": "geospatialAcl", - "required": [ - "geospatialAcl" - ], - "properties": { - "geospatialAcl": { - "$ref": "#/components/schemas/cognitegeospatial_aclAcl" - } - } - }, - { - "title": "geospatialCrsAcl", - "required": [ - "geospatialCrsAcl" - ], - "properties": { - "geospatialCrsAcl": { - "$ref": "#/components/schemas/cognitegeospatialcrs_aclAcl" - } - } - }, - { - "title": "groupsAcl", - "required": [ - "groupsAcl" - ], - "properties": { - "groupsAcl": { - "$ref": "#/components/schemas/cognitegroups_aclAcl" - } - } - }, - { - "title": "labelsAcl", - "required": [ - "labelsAcl" - ], - "properties": { - "labelsAcl": { - "$ref": "#/components/schemas/cognitelabels_aclAcl" - } - } - }, - { - "title": "projectsAcl", - "required": [ - "projectsAcl" - ], - "properties": { - "projectsAcl": { - "$ref": "#/components/schemas/cogniteprojects_aclAcl" - } - } - }, - { - "title": "rawAcl", - "required": [ - "rawAcl" - ], - "properties": { - "rawAcl": { - "$ref": "#/components/schemas/cogniteraw_aclAcl" - } - } - }, - { - "title": "relationshipsAcl", - "required": [ - "relationshipsAcl" - ], - "properties": { - "relationshipsAcl": { - "$ref": "#/components/schemas/cogniterelationships_aclAcl" - } - } - }, - { - "title": "roboticsAcl", - "required": [ - "roboticsAcl" - ], - "properties": { - "groupsAcl": { - "$ref": "#/components/schemas/cogniterobotics_aclAcl" - } - } - }, - { - "title": "securityCategoriesAcl", - "required": [ - "securityCategoriesAcl" - ], - "properties": { - "securityCategoriesAcl": { - "$ref": "#/components/schemas/cognitesecuritycategories_aclAcl" - } - } - }, - { - "title": "seismicAcl", - "required": [ - "seismicAcl" - ], - "properties": { - "seismicAcl": { - "$ref": "#/components/schemas/cogniteseismic_aclAcl" - } - } - }, - { - "title": "sequencesAcl", - "required": [ - "sequencesAcl" - ], - "properties": { - "sequencesAcl": { - "$ref": "#/components/schemas/cognitesequences_aclAcl" - } - } - }, - { - "title": "sessionsAcl", - "properties": { - "sessionsAcl": { - "$ref": "#/components/schemas/sessions_aclAcl" - } - } - }, - { - "title": "threedAcl", - "required": [ - "threedAcl" - ], - "properties": { - "threedAcl": { - "$ref": "#/components/schemas/cognitethreed_aclAcl" - } - } - }, - { - "title": "timeSeriesAcl", - "required": [ - "timeSeriesAcl" - ], - "properties": { - "timeSeriesAcl": { - "$ref": "#/components/schemas/cognitetimeseries_aclAcl" - } - } - }, - { - "title": "timeSeriesSubscriptionsAcl", - "required": [ - "timeSeriesSubscriptionsAcl" - ], - "properties": { - "timeSeriesSubscriptionsAcl": { - "$ref": "#/components/schemas/cognitetimeseriessubscriptions_aclAcl" - } - } - }, - { - "title": "transformationsAcl", - "required": [ - "transformationsAcl" - ], - "properties": { - "transformationsAcl": { - "$ref": "#/components/schemas/cognitetransformations_aclAcl" - } - } - }, + "allOf": [ { - "title": "typesAcl", - "required": [ - "typesAcl" - ], - "properties": { - "typesAcl": { - "$ref": "#/components/schemas/cognitetypes_aclAcl" + "oneOf": [ + { + "title": "analyticsAcl", + "required": [ + "analyticsAcl" + ], + "properties": { + "analyticsAcl": { + "$ref": "#/components/schemas/cogniteanalytics_aclAcl" + } + } + }, + { + "title": "annotationsAcl", + "properties": { + "annotationsAcl": { + "$ref": "#/components/schemas/annotations_aclAcl" + } + } + }, + { + "title": "assetsAcl", + "required": [ + "assetsAcl" + ], + "properties": { + "assetsAcl": { + "$ref": "#/components/schemas/cogniteassets_aclAcl" + } + } + }, + { + "title": "dataModelInstancesAcl", + "required": [ + "dataModelInstancesAcl" + ], + "properties": { + "dataModelInstancesAcl": { + "$ref": "#/components/schemas/cognitedatamodelinstances_aclAcl" + } + } + }, + { + "title": "dataModelsAcl", + "required": [ + "dataModelsAcl" + ], + "properties": { + "dataModelsAcl": { + "$ref": "#/components/schemas/cognitedatamodels_aclAcl" + } + } + }, + { + "title": "datasetsAcl", + "required": [ + "datasetsAcl" + ], + "properties": { + "datasetsAcl": { + "$ref": "#/components/schemas/cognitedatasets_aclAcl" + } + } + }, + { + "title": "digitalTwinAcl", + "required": [ + "digitalTwinAcl" + ], + "properties": { + "digitalTwinAcl": { + "$ref": "#/components/schemas/cognitedigitaltwin_aclAcl" + } + } + }, + { + "title": "entityMatchingAcl", + "properties": { + "entityMatchingAcl": { + "$ref": "#/components/schemas/entitymatching_aclAcl" + } + } + }, + { + "title": "eventsAcl", + "required": [ + "eventsAcl" + ], + "properties": { + "eventsAcl": { + "$ref": "#/components/schemas/cogniteevents_aclAcl" + } + } + }, + { + "title": "extractionPipelinesAcl", + "properties": { + "extractionpipelinesAcl": { + "$ref": "#/components/schemas/extractionpipelines_aclAcl" + } + } + }, + { + "title": "extractionRunsAcl", + "properties": { + "extractionrunsAcl": { + "$ref": "#/components/schemas/extractionruns_aclAcl" + } + } + }, + { + "title": "ilainstancesAcl", + "required": [ + "ilainstancesAcl" + ], + "properties": { + "ilainstancesAcl": { + "$ref": "#/components/schemas/cogniteilainstances_aclAcl" + } + } + }, + { + "title": "filesAcl", + "required": [ + "filesAcl" + ], + "properties": { + "filesAcl": { + "$ref": "#/components/schemas/cognitefiles_aclAcl" + } + } + }, + { + "title": "functionsAcl", + "required": [ + "functionsAcl" + ], + "properties": { + "functionsAcl": { + "$ref": "#/components/schemas/functions_aclAcl" + } + } + }, + { + "title": "geospatialAcl", + "required": [ + "geospatialAcl" + ], + "properties": { + "geospatialAcl": { + "$ref": "#/components/schemas/cognitegeospatial_aclAcl" + } + } + }, + { + "title": "geospatialCrsAcl", + "required": [ + "geospatialCrsAcl" + ], + "properties": { + "geospatialCrsAcl": { + "$ref": "#/components/schemas/cognitegeospatialcrs_aclAcl" + } + } + }, + { + "title": "groupsAcl", + "required": [ + "groupsAcl" + ], + "properties": { + "groupsAcl": { + "$ref": "#/components/schemas/cognitegroups_aclAcl" + } + } + }, + { + "title": "labelsAcl", + "required": [ + "labelsAcl" + ], + "properties": { + "labelsAcl": { + "$ref": "#/components/schemas/cognitelabels_aclAcl" + } + } + }, + { + "title": "locationFiltersAcl", + "properties": { + "locationFiltersAcl": { + "$ref": "#/components/schemas/locationfilters_aclAcl" + } + } + }, + { + "title": "projectsAcl", + "required": [ + "projectsAcl" + ], + "properties": { + "projectsAcl": { + "$ref": "#/components/schemas/cogniteprojects_aclAcl" + } + } + }, + { + "title": "rawAcl", + "required": [ + "rawAcl" + ], + "properties": { + "rawAcl": { + "$ref": "#/components/schemas/cogniteraw_aclAcl" + } + } + }, + { + "title": "relationshipsAcl", + "required": [ + "relationshipsAcl" + ], + "properties": { + "relationshipsAcl": { + "$ref": "#/components/schemas/cogniterelationships_aclAcl" + } + } + }, + { + "title": "roboticsAcl", + "required": [ + "roboticsAcl" + ], + "properties": { + "groupsAcl": { + "$ref": "#/components/schemas/cogniterobotics_aclAcl" + } + } + }, + { + "title": "securityCategoriesAcl", + "required": [ + "securityCategoriesAcl" + ], + "properties": { + "securityCategoriesAcl": { + "$ref": "#/components/schemas/cognitesecuritycategories_aclAcl" + } + } + }, + { + "title": "seismicAcl", + "required": [ + "seismicAcl" + ], + "properties": { + "seismicAcl": { + "$ref": "#/components/schemas/cogniteseismic_aclAcl" + } + } + }, + { + "title": "sequencesAcl", + "required": [ + "sequencesAcl" + ], + "properties": { + "sequencesAcl": { + "$ref": "#/components/schemas/cognitesequences_aclAcl" + } + } + }, + { + "title": "sessionsAcl", + "properties": { + "sessionsAcl": { + "$ref": "#/components/schemas/sessions_aclAcl" + } + } + }, + { + "title": "threedAcl", + "required": [ + "threedAcl" + ], + "properties": { + "threedAcl": { + "$ref": "#/components/schemas/cognitethreed_aclAcl" + } + } + }, + { + "title": "timeSeriesAcl", + "required": [ + "timeSeriesAcl" + ], + "properties": { + "timeSeriesAcl": { + "$ref": "#/components/schemas/cognitetimeseries_aclAcl" + } + } + }, + { + "title": "timeSeriesSubscriptionsAcl", + "required": [ + "timeSeriesSubscriptionsAcl" + ], + "properties": { + "timeSeriesSubscriptionsAcl": { + "$ref": "#/components/schemas/cognitetimeseriessubscriptions_aclAcl" + } + } + }, + { + "title": "transformationsAcl", + "required": [ + "transformationsAcl" + ], + "properties": { + "transformationsAcl": { + "$ref": "#/components/schemas/cognitetransformations_aclAcl" + } + } + }, + { + "title": "typesAcl", + "required": [ + "typesAcl" + ], + "properties": { + "typesAcl": { + "$ref": "#/components/schemas/cognitetypes_aclAcl" + } + } + }, + { + "title": "workflowOrchestrationAcl", + "required": [ + "workflowOrchestrationAcl" + ], + "properties": { + "workflowOrchestrationAcl": { + "$ref": "#/components/schemas/cogniteWorkflowOrchestration_aclAcl" + } + } } - } + ] }, { - "title": "workflowOrchestrationAcl", - "required": [ - "workflowOrchestrationAcl" - ], + "type": "object", + "title": "Project URL names", "properties": { - "workflowOrchestrationAcl": { - "$ref": "#/components/schemas/cogniteWorkflowOrchestration_aclAcl" + "projectUrlNames": { + "required": [ + "urlNames" + ], + "properties": { + "urlNames": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProjectUrlName" + } + } + } } } } @@ -37471,14 +42269,14 @@ "actions": { "type": "array", "items": { - "$ref": "#/components/schemas/cognitedatamodelInstancess_aclAction" + "$ref": "#/components/schemas/cognitedatamodelInstances_aclAction" } }, "scope": { "$ref": "#/components/schemas/cognitedatamodels_aclScope" } }, - "title": "Acl:DatamodelInstances" + "title": "Acl:DataModelInstances" }, "cognitedatamodels_aclAcl": { "type": "object", @@ -37497,9 +42295,9 @@ "$ref": "#/components/schemas/cognitedatamodels_aclScope" } }, - "title": "Acl:Datamodels" + "title": "Acl:DataModels" }, - "cognitedatamodelInstancess_aclAction": { + "cognitedatamodelInstances_aclAction": { "type": "string", "enum": [ "READ", @@ -37507,7 +42305,7 @@ "WRITE_PROPERTIES" ], "default": "READ", - "title": "Datamodels:Action" + "title": "DataModelInstances:Action" }, "cognitedatamodels_aclAction": { "type": "string", @@ -37516,7 +42314,7 @@ "WRITE" ], "default": "READ", - "title": "Datamodels:Action" + "title": "DataModels:Action" }, "cognitedatamodels_aclScope": { "type": "object", @@ -37538,7 +42336,7 @@ } } ], - "title": "Datasets:Scope" + "title": "DataModels:Scope" }, "cognitedatamodels_aclSpaceIdScope": { "type": "object", @@ -37551,7 +42349,7 @@ "title": "Space IDs" } }, - "title": "Scope:SpaceScope" + "title": "Scope:SpaceIdScope" }, "cognitedatasets_aclAcl": { "type": "object", @@ -37705,6 +42503,34 @@ ], "title": "Event:Scope" }, + "cogniteilainstances_aclAcl": { + "type": "object", + "required": [ + "actions", + "scope" + ], + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/cogniteilainstances_aclAction" + } + }, + "scope": { + "$ref": "#/components/schemas/cognitedatamodels_aclScope" + } + }, + "title": "Acl:IndustrialLogAnalyticsInstances" + }, + "cogniteilainstances_aclAction": { + "type": "string", + "enum": [ + "READ", + "WRITE" + ], + "default": "READ", + "title": "IndustrialLogAnalytics:Action" + }, "cognitefiles_aclAcl": { "type": "object", "required": [ @@ -38871,6 +43697,70 @@ ], "title": "Extraction Pipelines Configs:Scope" }, + "locationfilters_aclAcl": { + "type": "object", + "required": [ + "actions", + "scope" + ], + "properties": { + "actions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/locationfilters_aclAction" + } + }, + "scope": { + "$ref": "#/components/schemas/locationfilters_aclScope" + } + }, + "title": "Acl:Location Filters" + }, + "locationfilters_aclAction": { + "type": "string", + "enum": [ + "READ", + "WRITE" + ], + "default": "READ", + "title": "Location Filters:Action" + }, + "locationfilters_aclScope": { + "type": "object", + "oneOf": [ + { + "title": "all", + "properties": { + "all": { + "$ref": "#/components/schemas/generic_aclAllScope" + } + } + }, + { + "title": "idScope", + "properties": { + "idScope": { + "$ref": "#/components/schemas/locationfilters_aclIdScope" + } + } + } + ], + "title": "Location Filters:Scope" + }, + "locationfilters_aclIdScope": { + "type": "object", + "properties": { + "ids": { + "type": "array", + "items": { + "type": "integer", + "format": "uint64" + }, + "title": "location filter IDs" + } + }, + "title": "Scope:LocationFiltersIdScope" + }, "entitymatching_aclAcl": { "type": "object", "required": [ @@ -39138,6 +44028,18 @@ }, "description": "Sets if the project should be a leaf project or not. Currently only permitted to be updated by cluster administrators.\n\nCluster administrators should exercise caution when updating the `leafProject` status of a project, as it has the potential\nto break the invariants that only leaf projects can contain industrial data (assets, timeseries, etc.), or that leaf projects\nshould not have child projects.\n\nTypically the `leafProject` state should only be updated if a project has been mistakenly created with the wrong status.\n" }, + "SinglePatchDataModelingStatus": { + "type": "object", + "required": [ + "set" + ], + "properties": { + "set": { + "$ref": "#/components/schemas/DataModelingStatus" + } + }, + "description": "Sets the data modeling status of the project. Only permitted to be updated by cluster administrators." + }, "SinglePatchReservedPrefix": { "type": "object", "oneOf": [ @@ -39760,7 +44662,7 @@ "writeProtected": { "default": false, "type": "boolean", - "description": "To write data to a write-protected data set, you need to be a member of a group that has the \"datasets:owner\" action for the data set. To learn more about write-protected data sets, follow this [guide](/cdf/data_governance/concepts/datasets/#write-protection)" + "description": "To write data to a write-protected data set, you need to be a member of a group that has the \"datasets:owner\" action for the data set. To learn more about write-protected data sets, follow this [guide](https://docs.cognite.com/cdf/data_governance/concepts/datasets/#write-protection)." } } }, @@ -40075,175 +44977,684 @@ } } }, - "DataResourceIds": { + "DataResourceIds": { + "type": "object", + "required": [ + "items" + ], + "properties": { + "items": { + "type": "array", + "items": { + "oneOf": [ + { + "type": "object", + "title": "Select by Id", + "properties": { + "id": { + "$ref": "#/components/schemas/CogniteInternalId" + } + } + }, + { + "type": "object", + "title": "Select by ExternalId", + "properties": { + "externalId": { + "$ref": "#/components/schemas/CogniteExternalId" + } + } + } + ] + }, + "minItems": 1, + "maxItems": 1000 + } + } + }, + "DataResourceIdsWithIgnoreUnknownIds": { + "type": "object", + "allOf": [ + { + "type": "object", + "required": [ + "items" + ], + "properties": { + "items": { + "type": "array", + "items": { + "oneOf": [ + { + "type": "object", + "title": "Select by Id", + "properties": { + "id": { + "$ref": "#/components/schemas/CogniteInternalId" + } + } + }, + { + "type": "object", + "title": "Select by ExternalId", + "properties": { + "externalId": { + "$ref": "#/components/schemas/CogniteExternalId" + } + } + } + ] + }, + "minItems": 1, + "maxItems": 1000 + } + } + }, + { + "$ref": "#/components/schemas/IgnoreUnknownIdsField" + } + ] + }, + "DataGetSequence": { + "type": "object", + "required": [ + "items" + ], + "properties": { + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GetSequenceDTO" + } + } + } + }, + "DataPostSequence": { + "type": "object", + "required": [ + "items" + ], + "properties": { + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PostSequenceDTO" + }, + "minItems": 1, + "maxItems": 1000 + } + } + }, + "DataSequenceDataDeleteRequest": { + "type": "object", + "required": [ + "items" + ], + "properties": { + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SequenceDeleteDataRequest" + }, + "minItems": 1, + "maxItems": 1000 + } + } + }, + "SequenceDataRequest": { + "type": "object", + "description": "Parameters describing a query for datapoints.", + "oneOf": [ + { + "required": [ + "id" + ], + "title": "Select by Id", + "allOf": [ + { + "$ref": "#/components/schemas/SequenceDataRequestDTO" + }, + { + "properties": { + "id": { + "$ref": "#/components/schemas/CogniteInternalId" + } + } + } + ] + }, + { + "required": [ + "externalId" + ], + "title": "Select by ExternalId", + "allOf": [ + { + "$ref": "#/components/schemas/SequenceDataRequestDTO" + }, + { + "properties": { + "externalId": { + "$ref": "#/components/schemas/CogniteExternalId" + } + } + } + ] + } + ] + }, + "SequenceLatestDataRequest": { + "type": "object", + "description": "Parameters describing a query for the last row in a sequence.", + "oneOf": [ + { + "required": [ + "id" + ], + "title": "Select by Id", + "allOf": [ + { + "$ref": "#/components/schemas/SequenceLatestDataRequestDTO" + }, + { + "properties": { + "id": { + "$ref": "#/components/schemas/CogniteInternalId" + } + } + } + ] + }, + { + "required": [ + "externalId" + ], + "title": "Select by ExternalId", + "allOf": [ + { + "$ref": "#/components/schemas/SequenceLatestDataRequestDTO" + }, + { + "properties": { + "externalId": { + "$ref": "#/components/schemas/CogniteExternalId" + } + } + } + ] + } + ] + }, + "SequenceDeleteDataRequest": { + "type": "object", + "description": "Parameters describing datapoints to be deleted.", + "oneOf": [ + { + "required": [ + "id" + ], + "title": "Select by Id", + "allOf": [ + { + "$ref": "#/components/schemas/SequenceDataDeleteRequestDTO" + }, + { + "properties": { + "id": { + "$ref": "#/components/schemas/CogniteInternalId" + } + } + } + ] + }, + { + "required": [ + "externalId" + ], + "title": "Select by ExternalId", + "allOf": [ + { + "$ref": "#/components/schemas/SequenceDataDeleteRequestDTO" + }, + { + "properties": { + "externalId": { + "$ref": "#/components/schemas/CogniteExternalId" + } + } + } + ] + } + ] + }, + "DataSequencePostData": { + "type": "object", + "required": [ + "items" + ], + "properties": { + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SequencePostData" + }, + "minItems": 1, + "maxItems": 1000 + } + }, + "example": { + "items": [ + { + "externalId": "DL/DRILL412/20190103/T3", + "columns": [ + "Depth", + "DepthSource", + "PowerSetting" + ], + "rows": [ + { + "rowNumber": 1, + "values": [ + 23331.3, + "s2", + 61 + ] + } + ] + } + ] + } + }, + "DataSequenceChange": { + "type": "object", + "required": [ + "items" + ], + "properties": { + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SequencesUpdate" + }, + "minItems": 1, + "maxItems": 1000 + } + } + }, + "PostSequenceDTO": { + "required": [ + "columns" + ], + "type": "object", + "description": "Describes a new sequence.", + "properties": { + "name": { + "type": "string", + "example": "Any relevant name", + "description": "Name of the sequence.", + "maxLength": 255 + }, + "description": { + "type": "string", + "example": "Optional description", + "description": "Description of the sequence.", + "maxLength": 1000 + }, + "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.\n", + "additionalProperties": { + "type": "string" + } + }, + "columns": { + "type": "array", + "description": "List of column definitions. Maximum number of numeric columns is 400. Maximum number of string columns is 200. Maximum total number of columns is 400.", + "items": { + "$ref": "#/components/schemas/PostSequenceColumnDTO" + }, + "minItems": 1, + "maxItems": 400 + }, + "dataSetId": { + "$ref": "#/components/schemas/DataSetId" + } + } + }, + "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 + } + } + }, + "PostSequenceColumnDTO": { + "type": "object", + "description": "Describes a new column.", + "required": [ + "externalId" + ], + "properties": { + "name": { + "type": "string", + "example": "depth", + "description": "Human readable name of the sequence.", + "maxLength": 255 + }, + "externalId": { + "type": "string", + "example": "DPS1", + "maxLength": 255, + "description": "User provided column identifier (unique for a given sequence)." + }, + "description": { + "type": "string", + "example": "Optional description", + "description": "Description of the column.", + "maxLength": 1000 + }, + "valueType": { + "$ref": "#/components/schemas/SequenceValueTypeEnum" + }, + "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.\n", + "additionalProperties": { + "type": "string" + } + } + } + }, + "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 + } + } + }, + "SequenceDataRequestDTO": { "type": "object", - "required": [ - "items" - ], + "description": "A request for datapoints stored.", "properties": { - "items": { + "start": { + "type": "integer", + "description": "Lowest row number included.", + "default": 0, + "format": "int64" + }, + "end": { + "type": "integer", + "description": "Get rows up to, but excluding, this row number. Default - No limit.", + "example": 1, + "format": "int64" + }, + "limit": { + "type": "integer", + "description": "Maximum number of rows returned in one request. API might return less even if there's more data, but it will provide a cursor for continuation. If there's more data beyond this limit, a cursor will be returned to simplify further fetching of data.", + "minimum": 1, + "maximum": 10000, + "default": 100, + "example": 1, + "format": "int32" + }, + "cursor": { + "type": "string", + "description": "Cursor for pagination returned from a previous request. Apart from this cursor, the rest of the request object is the same as for the original request." + }, + "columns": { "type": "array", + "description": "Columns to include. Specified as a list of the `externalId` of each column to include.\nIf this filter isn't set, all available columns will be returned.\n", "items": { - "oneOf": [ - { - "type": "object", - "title": "Select by Id", - "properties": { - "id": { - "$ref": "#/components/schemas/CogniteInternalId" - } - } - }, - { - "type": "object", - "title": "Select by ExternalId", - "properties": { - "externalId": { - "$ref": "#/components/schemas/CogniteExternalId" - } - } - } - ] + "type": "string" }, "minItems": 1, - "maxItems": 1000 + "maxItems": 400 } } }, - "DataResourceIdsWithIgnoreUnknownIds": { - "type": "object", - "allOf": [ - { - "type": "object", - "required": [ - "items" - ], - "properties": { - "items": { - "type": "array", - "items": { - "oneOf": [ - { - "type": "object", - "title": "Select by Id", - "properties": { - "id": { - "$ref": "#/components/schemas/CogniteInternalId" - } - } - }, - { - "type": "object", - "title": "Select by ExternalId", - "properties": { - "externalId": { - "$ref": "#/components/schemas/CogniteExternalId" - } - } - } - ] - }, - "minItems": 1, - "maxItems": 1000 - } - } - }, - { - "$ref": "#/components/schemas/IgnoreUnknownIdsField" - } - ] - }, - "DataGetSequence": { + "SequenceLatestDataRequestDTO": { "type": "object", - "required": [ - "items" - ], + "description": "A request for the last row.", "properties": { - "items": { + "columns": { "type": "array", + "description": "Columns to include. Specified as a list of the `externalId` of each column to include.\nIf this filter isn't set, all available columns will be returned.\n", "items": { - "$ref": "#/components/schemas/GetSequenceDTO" - } + "type": "string" + }, + "minItems": 1, + "maxItems": 400 + }, + "before": { + "type": "integer", + "description": "Get rows up to, but not including, this row number.", + "minimum": 1, + "format": "int64" } } }, - "DataPostSequence": { + "SequenceDataDeleteRequestDTO": { "type": "object", "required": [ - "items" + "rows" ], + "description": "Rows to delete from a sequence.", "properties": { - "items": { + "rows": { "type": "array", "items": { - "$ref": "#/components/schemas/PostSequenceDTO" + "type": "integer", + "example": 1, + "format": "int64" }, "minItems": 1, - "maxItems": 1000 + "maxItems": 10000 } } }, - "DataSequenceDataDeleteRequest": { + "SequenceGetData": { "type": "object", "required": [ - "items" + "id", + "columns", + "rows" ], + "description": "Data from a sequence.", "properties": { - "items": { + "id": { + "$ref": "#/components/schemas/CogniteInternalId" + }, + "externalId": { + "$ref": "#/components/schemas/CogniteExternalId" + }, + "columns": { "type": "array", + "description": "Column information in the order given by data.", "items": { - "$ref": "#/components/schemas/SequenceDeleteDataRequest" - }, - "minItems": 1, - "maxItems": 1000 + "$ref": "#/components/schemas/BasicGetSequenceColumnInfo" + } + }, + "rows": { + "type": "array", + "description": "List of row information.", + "items": { + "$ref": "#/components/schemas/SequenceRowDTO" + } } + }, + "example": { + "id": 1112, + "externalId": "DL/DRILL412/20190103/T3", + "columns": [ + { + "externalId": "Depth" + }, + { + "externalId": "DepthSource" + }, + { + "externalId": "PowerSetting" + } + ], + "rows": [ + { + "rowNumber": 1, + "values": [ + 23331.3, + "s2", + 61 + ] + } + ] } }, - "SequenceDataRequest": { - "type": "object", - "description": "Parameters describing a query for datapoints.", - "oneOf": [ + "SequenceGetDataWithCursor": { + "allOf": [ { - "required": [ - "id" - ], - "title": "Select by Id", - "allOf": [ - { - "$ref": "#/components/schemas/SequenceDataRequestDTO" - }, - { - "properties": { - "id": { - "$ref": "#/components/schemas/CogniteInternalId" - } - } - } - ] + "$ref": "#/components/schemas/SequenceGetData" }, { - "required": [ - "externalId" - ], - "title": "Select by ExternalId", - "allOf": [ - { - "$ref": "#/components/schemas/SequenceDataRequestDTO" - }, - { - "properties": { - "externalId": { - "$ref": "#/components/schemas/CogniteExternalId" - } - } + "properties": { + "nextCursor": { + "type": "string", + "description": "Cursor to get the next page of results (if available)." } - ] + } } ] }, - "SequenceLatestDataRequest": { + "SequencePostData": { "type": "object", - "description": "Parameters describing a query for the last row in a sequence.", "oneOf": [ { "required": [ @@ -40252,7 +45663,7 @@ "title": "Select by Id", "allOf": [ { - "$ref": "#/components/schemas/SequenceLatestDataRequestDTO" + "$ref": "#/components/schemas/SequenceDataInsertion" }, { "properties": { @@ -40270,7 +45681,7 @@ "title": "Select by ExternalId", "allOf": [ { - "$ref": "#/components/schemas/SequenceLatestDataRequestDTO" + "$ref": "#/components/schemas/SequenceDataInsertion" }, { "properties": { @@ -40281,1128 +45692,1297 @@ } ] } - ] + ], + "example": { + "externalId": "DL/DRILL412/20190103/T3", + "columns": [ + "Depth", + "DepthSource", + "PowerSetting" + ], + "rows": [ + { + "rowNumber": 1, + "values": [ + 23331.3, + "s2", + 61 + ] + } + ] + } }, - "SequenceDeleteDataRequest": { + "SequenceDataInsertion": { "type": "object", - "description": "Parameters describing datapoints to be deleted.", + "required": [ + "columns", + "rows" + ], + "description": "Data from a sequence.", + "properties": { + "columns": { + "type": "array", + "description": "Column external IDs in the same order as the values for each row.", + "items": { + "type": "string" + }, + "minItems": 1, + "maxItems": 200 + }, + "rows": { + "type": "array", + "description": "List of rows. The number of rows per request is limited to 10000. The total number of values, including nulls, in a single request is limited to 100000.", + "items": { + "$ref": "#/components/schemas/SequenceRowDTO" + }, + "minItems": 1, + "maxItems": 10000 + } + } + }, + "BasicGetSequenceColumnInfo": { + "type": "object", + "description": "Column information returned on data requests.", + "properties": { + "externalId": { + "type": "string", + "example": "DPS1", + "description": "User provided column identifier (unique for a given sequence)." + }, + "name": { + "type": "string", + "example": "Depth sensor 1", + "description": "Human readable name of the column." + }, + "valueType": { + "$ref": "#/components/schemas/SequenceValueTypeEnum" + } + } + }, + "SequenceRowDTO": { + "type": "object", + "description": "A single row of datapoints.", + "required": [ + "rowNumber", + "values" + ], + "properties": { + "rowNumber": { + "type": "integer", + "description": "The row number for this row.", + "example": 1, + "minimum": 0, + "format": "int64" + }, + "values": { + "type": "array", + "description": "List of values in the order defined in the columns field. Number of items must match. Null is accepted for missing values. String values must be no longer than 256 characters.", + "items": { + "$ref": "#/components/schemas/SequenceItemDTO" + }, + "minItems": 1, + "maxItems": 400 + } + } + }, + "SequenceItemDTO": { + "oneOf": [ + { + "type": "number", + "description": "JSON element of type corresponding to the column type. May include NULL.", + "example": 10000.123 + }, + { + "type": "string", + "description": "JSON element of type corresponding to the column type. May include NULL.", + "example": "ON" + } + ] + }, + "SequencesUpdate": { "oneOf": [ { + "$ref": "#/components/schemas/SequencesUpdateById" + }, + { + "$ref": "#/components/schemas/SequencesUpdateByExternalId" + } + ] + }, + "SequencesUpdateById": { + "title": "Select by Id", + "allOf": [ + { + "$ref": "#/components/schemas/SequenceChangeDTO" + }, + { + "type": "object", "required": [ "id" ], - "title": "Select by Id", - "allOf": [ - { - "$ref": "#/components/schemas/SequenceDataDeleteRequestDTO" - }, - { - "properties": { - "id": { - "$ref": "#/components/schemas/CogniteInternalId" - } - } + "properties": { + "id": { + "$ref": "#/components/schemas/CogniteInternalId" } - ] + } + } + ] + }, + "SequencesUpdateByExternalId": { + "title": "Select by ExternalId", + "allOf": [ + { + "$ref": "#/components/schemas/SequenceChangeDTO" }, { + "type": "object", "required": [ "externalId" ], - "title": "Select by ExternalId", - "allOf": [ - { - "$ref": "#/components/schemas/SequenceDataDeleteRequestDTO" - }, - { - "properties": { - "externalId": { - "$ref": "#/components/schemas/CogniteExternalId" - } - } + "properties": { + "externalId": { + "$ref": "#/components/schemas/CogniteExternalId" } - ] + } } ] }, - "DataSequencePostData": { - "type": "object", + "SequenceChangeDTO": { "required": [ - "items" + "update" ], "properties": { - "items": { + "update": { + "type": "object", + "description": "A description of changes that should be done to the sequence.", + "properties": { + "name": { + "$ref": "#/components/schemas/SinglePatchString" + }, + "description": { + "$ref": "#/components/schemas/SinglePatchString" + }, + "assetId": { + "$ref": "#/components/schemas/SinglePatchLong" + }, + "externalId": { + "$ref": "#/components/schemas/SinglePatchString" + }, + "metadata": { + "$ref": "#/components/schemas/ObjectPatch" + }, + "dataSetId": { + "$ref": "#/components/schemas/SinglePatchLong" + }, + "columns": { + "$ref": "#/components/schemas/SequenceColumnChangeDTO" + } + } + } + } + }, + "SequenceColumnChangeDTO": { + "description": "Add, remove, or modify sequence columns. After the update, the number of numeric columns and\ndeleted columns should be ≤ 400; the number of string columns and deleted columns should\nbe ≤ 200; and the number of numeric columns, string columns, and deleted columns should\nbe ≤ 400.\n", + "properties": { + "modify": { "type": "array", + "description": "List of single column updates.", "items": { - "$ref": "#/components/schemas/SequencePostData" - }, - "minItems": 1, - "maxItems": 1000 - } - }, - "example": { - "items": [ - { - "externalId": "DL/DRILL412/20190103/T3", - "columns": [ - "Depth", - "DepthSource", - "PowerSetting" + "description": "Modify a single sequence column by column externalId", + "required": [ + "externalId", + "update" ], - "rows": [ - { - "rowNumber": 1, - "values": [ - 23331.3, - "s2", - 61 - ] + "properties": { + "externalId": { + "$ref": "#/components/schemas/CogniteExternalId" + }, + "update": { + "type": "object", + "description": "Modifications to apply to a single column.", + "properties": { + "description": { + "$ref": "#/components/schemas/SinglePatchString" + }, + "externalId": { + "$ref": "#/components/schemas/SinglePatchRequiredString" + }, + "name": { + "$ref": "#/components/schemas/SinglePatchString" + }, + "metadata": { + "$ref": "#/components/schemas/ObjectPatch" + } + } } - ] + } } - ] - } - }, - "DataSequenceChange": { - "type": "object", - "required": [ - "items" - ], - "properties": { - "items": { + }, + "add": { "type": "array", + "description": "List of column definitions to add.", "items": { - "$ref": "#/components/schemas/SequencesUpdate" - }, - "minItems": 1, - "maxItems": 1000 + "$ref": "#/components/schemas/PostSequenceColumnDTO" + } + }, + "remove": { + "type": "array", + "description": "List of columns to remove.", + "items": { + "type": "object", + "required": [ + "externalId" + ], + "properties": { + "externalId": { + "$ref": "#/components/schemas/CogniteExternalId" + } + } + } } } }, - "PostSequenceDTO": { - "required": [ - "columns" - ], + "SequenceFilter": { "type": "object", - "description": "Describes a new sequence.", "properties": { "name": { "type": "string", - "example": "Any relevant name", - "description": "Name of the sequence.", - "maxLength": 255 - }, - "description": { - "type": "string", - "example": "Optional description", - "description": "Description of the sequence.", - "maxLength": 1000 - }, - "assetId": { - "type": "integer", - "example": 1221123111, - "description": "Optional asset this sequence is associated with.", - "format": "int64" + "description": "Returns only sequences with this name." }, - "externalId": { - "$ref": "#/components/schemas/CogniteExternalId" + "externalIdPrefix": { + "$ref": "#/components/schemas/CogniteExternalIdPrefix" }, "metadata": { - "type": "object", + "description": "Filters the sequences by metadata fields and values. Format is {'key1':'value1','key2':'value2'}.", "example": { - "extracted-by": "cognite" + "key1": "value1", + "key2": "value2" }, - "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.\n", - "additionalProperties": { - "type": "string" - } + "type": "object" }, - "columns": { + "assetIds": { "type": "array", - "description": "List of column definitions. Maximum number of numeric columns is 400. Maximum number of string columns is 200. Maximum total number of columns is 400.", + "description": "Returns only sequences linked to one of the specified assets.", + "example": [ + 363848954441724, + 793045462540095, + 1261042166839739 + ], "items": { - "$ref": "#/components/schemas/PostSequenceColumnDTO" + "$ref": "#/components/schemas/CogniteInternalId" }, "minItems": 1, - "maxItems": 400 - }, - "dataSetId": { - "$ref": "#/components/schemas/DataSetId" - } - } - }, - "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" + "maxItems": 100, + "uniqueItems": true }, - "metadata": { - "type": "object", - "example": { - "extracted-by": "cognite" + "rootAssetIds": { + "type": "array", + "description": "Only includes sequences that have a related asset in a tree rooted at any of these root `assetIds`.", + "example": [ + 363848954441724, + 793045462540095, + 1261042166839739 + ], + "items": { + "$ref": "#/components/schemas/CogniteInternalId" }, - "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" - } + "minItems": 1, + "maxItems": 100, + "uniqueItems": true }, - "columns": { + "assetSubtreeIds": { "type": "array", - "description": "List of column definitions.", + "description": "Only includes sequences that have a related asset in a subtree rooted at any of these `assetIds` (including the roots given). If the total size of the given subtrees exceeds 100,000 assets, an error will be returned.", + "example": [ + { + "id": 1234567890 + }, + { + "externalId": "externalId123" + } + ], "items": { - "$ref": "#/components/schemas/GetSequenceColumnDTO" - } + "$ref": "#/components/schemas/AssetIdEither" + }, + "minItems": 1, + "maxItems": 100, + "uniqueItems": true }, "createdTime": { - "type": "integer", - "example": 100000000000, - "description": "Time when this sequence was created in CDF in milliseconds since Jan 1, 1970.", - "format": "int64", - "readOnly": true + "$ref": "#/components/schemas/EpochTimestampRange" }, "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 + "$ref": "#/components/schemas/EpochTimestampRange" }, - "dataSetId": { - "type": "integer", - "format": "int64", - "description": "Data set this sequence belongs to.", - "example": 2718281828459 + "dataSetIds": { + "type": "array", + "maxItems": 100, + "uniqueItems": true, + "description": "Only includes sequences that belong to these datasets.", + "items": { + "$ref": "#/components/schemas/DataSetIdEither" + } } } }, - "PostSequenceColumnDTO": { + "SequenceSearch": { "type": "object", - "description": "Describes a new column.", - "required": [ - "externalId" - ], "properties": { "name": { - "type": "string", - "example": "depth", - "description": "Human readable name of the sequence.", - "maxLength": 255 - }, - "externalId": { - "type": "string", - "example": "DPS1", - "maxLength": 255, - "description": "User provided column identifier (unique for a given sequence)." + "description": "Prefix and fuzzy search on name.", + "type": "string" }, "description": { - "type": "string", - "example": "Optional description", - "description": "Description of the column.", - "maxLength": 1000 - }, - "valueType": { - "$ref": "#/components/schemas/SequenceValueTypeEnum" + "description": "Prefix and fuzzy search on description.", + "type": "string" }, - "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.\n", - "additionalProperties": { - "type": "string" - } + "query": { + "description": "Searches on name and description using wildcard search on each of the words (separated by spaces). Retrieves results where at least one word must match. For example, '*some other*'.", + "type": "string" } } }, - "GetSequenceColumnDTO": { + "SequencesSearchDTO": { "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" - } + "filter": { + "$ref": "#/components/schemas/SequenceFilter" }, - "createdTime": { - "type": "integer", - "example": 100000000000, - "description": "Time when this asset was created in CDF in milliseconds since Jan 1, 1970.", - "format": "int64", - "readOnly": true + "search": { + "$ref": "#/components/schemas/SequenceSearch" }, - "lastUpdatedTime": { + "limit": { + "description": "Returns up to this many results.", + "maximum": 1000, + "minimum": 1, "type": "integer", - "example": 100000000000, - "description": "The last time this asset was updated in CDF, in milliseconds since Jan 1, 1970.", - "format": "int64", - "readOnly": true + "format": "int32", + "default": 100 } } }, - "SequenceDataRequestDTO": { - "type": "object", - "description": "A request for datapoints stored.", - "properties": { - "start": { - "type": "integer", - "description": "Lowest row number included.", - "default": 0, - "format": "int64" - }, - "end": { - "type": "integer", - "description": "Get rows up to, but excluding, this row number. Default - No limit.", - "example": 1, - "format": "int64" + "SequencesAdvancedListDTO": { + "allOf": [ + { + "type": "object", + "properties": { + "filter": { + "$ref": "#/components/schemas/SequenceFilter" + }, + "advancedFilter": { + "$ref": "#/components/schemas/SequencesFilterLanguage" + }, + "limit": { + "description": "Returns up to this many results per page.", + "maximum": 1000, + "minimum": 1, + "type": "integer", + "format": "int32", + "default": 100 + } + } }, - "limit": { - "type": "integer", - "description": "Maximum number of rows returned in one request. API might return less even if there's more data, but it will provide a cursor for continuation. If there's more data beyond this limit, a cursor will be returned to simplify further fetching of data.", - "minimum": 1, - "maximum": 10000, - "default": 100, - "example": 1, - "format": "int32" + { + "$ref": "#/components/schemas/Cursor" }, - "cursor": { - "type": "string", - "description": "Cursor for pagination returned from a previous request. Apart from this cursor, the rest of the request object is the same as for the original request." + { + "$ref": "#/components/schemas/PartitionObject" }, - "columns": { - "type": "array", - "description": "Columns to include. Specified as a list of the `externalId` of each column to include.\nIf this filter isn't set, all available columns will be returned.\n", - "items": { - "type": "string" - }, - "minItems": 1, - "maxItems": 400 + { + "$ref": "#/components/schemas/SequencesSort" } - } + ] }, - "SequenceLatestDataRequestDTO": { + "SequencesAdvancedAggregateDTO": { "type": "object", - "description": "A request for the last row.", - "properties": { - "columns": { - "type": "array", - "description": "Columns to include. Specified as a list of the `externalId` of each column to include.\nIf this filter isn't set, all available columns will be returned.\n", - "items": { - "type": "string" - }, - "minItems": 1, - "maxItems": 400 + "allOf": [ + { + "properties": { + "advancedFilter": { + "$ref": "#/components/schemas/SequencesFilterLanguage" + }, + "aggregateFilter": { + "$ref": "#/components/schemas/SequencesAggregateFilter" + }, + "filter": { + "$ref": "#/components/schemas/SequenceFilter" + } + } }, - "before": { - "type": "integer", - "description": "Get rows up to, but not including, this row number.", - "minimum": 1, - "format": "int64" + { + "oneOf": [ + { + "$ref": "#/components/schemas/SequencesCountAggregate" + }, + { + "$ref": "#/components/schemas/SequencesCardinalityValuesAggregate" + }, + { + "$ref": "#/components/schemas/SequencesCardinalityPropertiesAggregate" + }, + { + "$ref": "#/components/schemas/SequencesUniqueValuesAggregate" + }, + { + "$ref": "#/components/schemas/SequencesUniquePropertiesAggregate" + } + ] } - } + ] }, - "SequenceDataDeleteRequestDTO": { + "SequencesCountAggregate": { "type": "object", - "required": [ - "rows" - ], - "description": "Rows to delete from a sequence.", + "title": "Count", "properties": { - "rows": { - "type": "array", - "items": { - "type": "integer", - "example": 1, - "format": "int64" - }, - "minItems": 1, - "maxItems": 10000 + "aggregate": { + "description": "The `count` aggregation gets the number of sequences that match the filter(s). This is the\r\ndefault aggregation, which will also be applied if `aggregate` is not specified.\r\n", + "type": "string", + "enum": [ + "count" + ] } } }, - "SequenceGetData": { - "type": "object", - "required": [ - "id", - "columns", - "rows" - ], - "description": "Data from a sequence.", - "properties": { - "id": { - "$ref": "#/components/schemas/CogniteInternalId" - }, - "externalId": { - "$ref": "#/components/schemas/CogniteExternalId" - }, - "columns": { - "type": "array", - "description": "Column information in the order given by data.", - "items": { - "$ref": "#/components/schemas/BasicGetSequenceColumnInfo" + "SequencesCardinalityValuesAggregate": { + "title": "CardinalityValues", + "allOf": [ + { + "type": "object", + "required": [ + "aggregate" + ], + "properties": { + "aggregate": { + "description": "The `cardinalityValues` aggregation gets, from the sequences that match the filter(s),\r\nthe approximate number of unique values that are taken on by the given property.\r\n", + "type": "string", + "enum": [ + "cardinalityValues" + ] + } } }, - "rows": { - "type": "array", - "description": "List of row information.", - "items": { - "$ref": "#/components/schemas/SequenceRowDTO" - } + { + "$ref": "#/components/schemas/SequencesAggregateProperties" } - }, - "example": { - "id": 1112, - "externalId": "DL/DRILL412/20190103/T3", - "columns": [ - { - "externalId": "Depth" - }, - { - "externalId": "DepthSource" - }, - { - "externalId": "PowerSetting" - } - ], - "rows": [ - { - "rowNumber": 1, - "values": [ - 23331.3, - "s2", - 61 - ] + ] + }, + "SequencesCardinalityPropertiesAggregate": { + "title": "CardinalityProperties", + "allOf": [ + { + "type": "object", + "required": [ + "aggregate" + ], + "properties": { + "aggregate": { + "description": "The `cardinalityProperties` aggregation gets, from the sequences that match the filter(s),\r\nthe approximate number of unique properties whose property path begins with the given `path`.\r\nCurrently, the only supported value for `path` is `[\"metadata\"]`, which means that this aggregation\r\nwill get the approximate size of the set of unique metadata keys.\r\n", + "type": "string", + "enum": [ + "cardinalityProperties" + ] + } } - ] - } + }, + { + "$ref": "#/components/schemas/SequencesAggregatePath" + } + ] }, - "SequenceGetDataWithCursor": { + "SequencesUniqueValuesAggregate": { + "title": "UniqueValues", "allOf": [ { - "$ref": "#/components/schemas/SequenceGetData" - }, - { + "type": "object", + "required": [ + "aggregate" + ], "properties": { - "nextCursor": { + "aggregate": { + "description": "The `uniqueValues` aggregation gets, from the sequences that match the filter(s),\r\nthe set of unique values (up to max 1000) that are taken on by the given property. For each such\r\nvalue, the aggregation result will also specify the frequency - that is, the number of sequences\r\nthat match the filter(s) and have that property value. The results are ordered by frequency in\r\ndescending order.\r\n", "type": "string", - "description": "Cursor to get the next page of results (if available)." + "enum": [ + "uniqueValues" + ] } } + }, + { + "$ref": "#/components/schemas/SequencesAggregateProperties" } ] }, - "SequencePostData": { - "type": "object", - "oneOf": [ + "SequencesUniquePropertiesAggregate": { + "title": "UniqueProperties", + "allOf": [ { + "type": "object", "required": [ - "id" + "aggregate" ], - "title": "Select by Id", - "allOf": [ - { - "$ref": "#/components/schemas/SequenceDataInsertion" - }, - { - "properties": { - "id": { - "$ref": "#/components/schemas/CogniteInternalId" - } - } + "properties": { + "aggregate": { + "description": "The `uniqueProperties` aggregation gets, from the sequences that match the filter(s),\r\nthe set of unique properties (up to max 1000) whose property path begins with the given `path`.\r\nCurrently, the only supported value for `path` is `[\"metadata\"]`, which means that this aggregation\r\nwill get the set of unique metadata keys. For each such property, the aggregation result will also\r\nspecify the frequency - that is, the number of sequences that match the filter(s) and have that\r\nproperty. The results are ordered by frequency in descending order.\r\n", + "type": "string", + "enum": [ + "uniqueProperties" + ] } - ] + } }, { - "required": [ - "externalId" - ], - "title": "Select by ExternalId", - "allOf": [ - { - "$ref": "#/components/schemas/SequenceDataInsertion" - }, - { - "properties": { - "externalId": { - "$ref": "#/components/schemas/CogniteExternalId" - } - } - } - ] + "$ref": "#/components/schemas/SequencesAggregatePath" } - ], - "example": { - "externalId": "DL/DRILL412/20190103/T3", - "columns": [ - "Depth", - "DepthSource", - "PowerSetting" - ], - "rows": [ - { - "rowNumber": 1, - "values": [ - 23331.3, - "s2", - 61 - ] - } - ] - } + ] }, - "SequenceDataInsertion": { + "SequencesAggregateProperties": { "type": "object", "required": [ - "columns", - "rows" + "properties" ], - "description": "Data from a sequence.", "properties": { - "columns": { + "properties": { "type": "array", - "description": "Column external IDs in the same order as the values for each row.", - "items": { - "type": "string" - }, + "description": "The properties to which the aggregation should be applied. While this parameter is a list, it\r\ncurrently only accepts one element. Each element is an object with a single field called `property`,\r\nwhose value is another list (in order to accommodate nested properties). Thus, a top-level property\r\n`name` must be specified as `[{\"property\": [\"name\"]}]`, and a metadata property `tag` must be\r\nspecified as `[{\"property\": [\"metadata\", \"tag\"]}]`.\r\n\r\nThe supported top-level properties are:\r\n- `accessCategories`\r\n- `assetId`\r\n- `assetRootId`\r\n- `createdTime`\r\n- `dataSetId`\r\n- `description`\r\n- `externalId`\r\n- `id`\r\n- `lastUpdatedTime`\r\n- `name`\r\n", "minItems": 1, - "maxItems": 200 - }, - "rows": { - "type": "array", - "description": "List of rows. The number of rows per request is limited to 10000. The total number of values, including nulls, in a single request is limited to 100000.", + "maxItems": 1, "items": { - "$ref": "#/components/schemas/SequenceRowDTO" - }, - "minItems": 1, - "maxItems": 10000 - } - } - }, - "BasicGetSequenceColumnInfo": { - "type": "object", - "description": "Column information returned on data requests.", - "properties": { - "externalId": { - "type": "string", - "example": "DPS1", - "description": "User provided column identifier (unique for a given sequence)." - }, - "name": { - "type": "string", - "example": "Depth sensor 1", - "description": "Human readable name of the column." - }, - "valueType": { - "$ref": "#/components/schemas/SequenceValueTypeEnum" + "type": "object", + "required": [ + "property" + ], + "properties": { + "property": { + "type": "array", + "minItems": 1, + "maxItems": 2, + "items": { + "type": "string", + "minLength": 1, + "maxLength": 128 + } + } + } + } } } }, - "SequenceRowDTO": { + "SequencesAggregatePath": { "type": "object", - "description": "A single row of datapoints.", "required": [ - "rowNumber", - "values" + "path" ], "properties": { - "rowNumber": { - "type": "integer", - "description": "The row number for this row.", - "example": 1, - "minimum": 0, - "format": "int64" - }, - "values": { + "path": { + "description": "The scope within which properties should be aggregated. The only value that is currently allowed is `['metadata']`, which will aggregate metadata keys.", "type": "array", - "description": "List of values in the order defined in the columns field. Number of items must match. Null is accepted for missing values. String values must be no longer than 256 characters.", - "items": { - "$ref": "#/components/schemas/SequenceItemDTO" - }, "minItems": 1, - "maxItems": 400 + "maxItems": 1, + "items": { + "type": "string", + "enum": [ + "metadata" + ] + } } } }, - "SequenceItemDTO": { + "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" + ] + }, + "SequencesFilterLanguage": { + "type": "object", + "description": "A filter DSL (Domain Specific Language) to define advanced filter queries.\n\nAt the top level, an `advancedFilter` expression is either a single Boolean filter or a\nsingle leaf filter. Boolean filters contain other Boolean filters and/or leaf filters. The\ntotal number of filters may be at most 100, and the depth (the greatest number of times\nfilters have been nested inside each other) may be at most 10. The `search` leaf filter may\nat most be used twice within a single `advancedFilter`, but all other filters can be used\nas many times as you like as long as the other limits are respected.\n", "oneOf": [ { - "type": "number", - "description": "JSON element of type corresponding to the column type. May include NULL.", - "example": 10000.123 + "$ref": "#/components/schemas/SequencesBoolFilter" }, { - "type": "string", - "description": "JSON element of type corresponding to the column type. May include NULL.", - "example": "ON" + "$ref": "#/components/schemas/SequencesLeafFilter" } - ] + ], + "example": { + "or": [ + { + "not": { + "and": [ + { + "equals": { + "property": [ + "metadata", + "manufacturer" + ], + "value": "acme" + } + }, + { + "in": { + "property": [ + "name" + ], + "values": [ + "pump-1-temperature", + "motor-9-temperature" + ] + } + }, + { + "range": { + "property": [ + "dataSetId" + ], + "gte": 1, + "lt": 10 + } + } + ] + } + }, + { + "and": [ + { + "equals": { + "property": [ + "assetId" + ], + "value": 1234 + } + }, + { + "equals": { + "property": [ + "description" + ], + "value": "Temperature in Celsius" + } + } + ] + } + ] + } }, - "SequencesUpdate": { + "SequencesLeafFilter": { + "description": "Leaf filter.\n", + "title": "Leaf filter", + "type": "object", "oneOf": [ { - "$ref": "#/components/schemas/SequencesUpdateById" + "$ref": "#/components/schemas/SequencesEqualsFilter" }, { - "$ref": "#/components/schemas/SequencesUpdateByExternalId" + "$ref": "#/components/schemas/SequencesInFilter" + }, + { + "$ref": "#/components/schemas/SequencesRangeFilter" + }, + { + "$ref": "#/components/schemas/SequencesPrefixFilter" + }, + { + "$ref": "#/components/schemas/SequencesExistsFilter" + }, + { + "$ref": "#/components/schemas/SequencesContainsAnyFilter" + }, + { + "$ref": "#/components/schemas/SequencesContainsAllFilter" + }, + { + "$ref": "#/components/schemas/SequencesSearchFilter" } ] }, - "SequencesUpdateById": { - "title": "Select by Id", - "allOf": [ + "SequencesBoolFilter": { + "description": "A query that matches items matching boolean combinations of other queries.\nIt is built by nesting one or more Boolean clauses, each of which is one of `and`, `or`, and `not`.\nEach such clause contains one or more child clauses (though `not` can only have one).\nEach child clause can be either another Boolean clause or a leaf filter.\n", + "title": "Boolean filter", + "type": "object", + "oneOf": [ { - "$ref": "#/components/schemas/SequenceChangeDTO" + "type": "object", + "title": "and", + "required": [ + "and" + ], + "properties": { + "and": { + "description": "All of the sub-clauses in the query must appear in matching items.", + "type": "array", + "minItems": 1, + "maxItems": 99, + "items": { + "$ref": "#/components/schemas/SequencesFilterLanguage" + } + } + } }, { "type": "object", + "title": "or", "required": [ - "id" + "or" ], "properties": { - "id": { - "$ref": "#/components/schemas/CogniteInternalId" + "or": { + "description": "At least one of the sub-clauses in the query must appear in matching items.", + "type": "array", + "minItems": 1, + "maxItems": 99, + "items": { + "$ref": "#/components/schemas/SequencesFilterLanguage" + } } } - } - ] - }, - "SequencesUpdateByExternalId": { - "title": "Select by ExternalId", - "allOf": [ - { - "$ref": "#/components/schemas/SequenceChangeDTO" }, { "type": "object", + "title": "not", "required": [ - "externalId" + "not" ], "properties": { - "externalId": { - "$ref": "#/components/schemas/CogniteExternalId" + "not": { + "title": "Filter DSL", + "description": "Sub-clauses in the query must not appear in matching items.", + "type": "object", + "allOf": [ + { + "$ref": "#/components/schemas/SequencesFilterLanguage" + } + ] } } } ] }, - "SequenceChangeDTO": { + "SequencesEqualsFilter": { + "type": "object", + "title": "equals", "required": [ - "update" + "equals" ], "properties": { - "update": { + "equals": { + "required": [ + "property", + "value" + ], + "description": "Matches items where the given property is **exactly** equal to the given value.\n", "type": "object", - "description": "A description of changes that should be done to the sequence.", "properties": { - "name": { - "$ref": "#/components/schemas/SinglePatchString" - }, - "description": { - "$ref": "#/components/schemas/SinglePatchString" - }, - "assetId": { - "$ref": "#/components/schemas/SinglePatchLong" - }, - "externalId": { - "$ref": "#/components/schemas/SinglePatchString" - }, - "metadata": { - "$ref": "#/components/schemas/ObjectPatch" - }, - "dataSetId": { - "$ref": "#/components/schemas/SinglePatchLong" + "property": { + "$ref": "#/components/schemas/SequencesFilterProperty" }, - "columns": { - "$ref": "#/components/schemas/SequenceColumnChangeDTO" + "value": { + "$ref": "#/components/schemas/SequencesValue" } } } } }, - "SequenceColumnChangeDTO": { - "description": "Add, remove, or modify sequence columns. After the update, the number of numeric columns and\ndeleted columns should be ≤ 400; the number of string columns and deleted columns should\nbe ≤ 200; and the number of numeric columns, string columns, and deleted columns should\nbe ≤ 400.\n", + "SequencesInFilter": { + "type": "object", + "title": "in", + "required": [ + "in" + ], "properties": { - "modify": { - "type": "array", - "description": "List of single column updates.", - "items": { - "description": "Modify a single sequence column by column externalId", - "required": [ - "externalId", - "update" - ], - "properties": { - "externalId": { - "$ref": "#/components/schemas/CogniteExternalId" - }, - "update": { - "type": "object", - "description": "Modifications to apply to a single column.", - "properties": { - "description": { - "$ref": "#/components/schemas/SinglePatchString" - }, - "externalId": { - "$ref": "#/components/schemas/SinglePatchRequiredString" - }, - "name": { - "$ref": "#/components/schemas/SinglePatchString" - }, - "metadata": { - "$ref": "#/components/schemas/ObjectPatch" - } - } - } + "in": { + "required": [ + "property", + "values" + ], + "description": "Matches items where the given property is **exactly** equal to one of the given values.\nThis filter can only be applied to single-valued properties.\n", + "type": "object", + "properties": { + "property": { + "$ref": "#/components/schemas/SequencesFilterProperty" + }, + "values": { + "$ref": "#/components/schemas/SequencesValues" } } - }, - "add": { - "type": "array", - "description": "List of column definitions to add.", - "items": { - "$ref": "#/components/schemas/PostSequenceColumnDTO" - } - }, - "remove": { - "type": "array", - "description": "List of columns to remove.", - "items": { - "type": "object", - "required": [ - "externalId" - ], - "properties": { - "externalId": { - "$ref": "#/components/schemas/CogniteExternalId" - } + } + } + }, + "SequencesRangeFilter": { + "type": "object", + "title": "range", + "required": [ + "range" + ], + "properties": { + "range": { + "required": [ + "property" + ], + "description": "Matches items that contain terms within the provided range.\n\nOne upper bound and/or one lower bound must be specified. It's not allowed to specify both inclusive and exclusive\nbounds \"on the same side\" together (at most one of `lte` and `lt` may be specified, and at most one of `gte` and `gt`).\n- `gte`: Greater than or equal to.\n- `gt`: Greater than.\n- `lte`: Less than or equal to.\n- `lt`: Less than.\n\nMay only be applied to string properties and number properties.\n", + "type": "object", + "properties": { + "property": { + "$ref": "#/components/schemas/SequencesFilterProperty" + }, + "gte": { + "$ref": "#/components/schemas/SequencesRangeValue" + }, + "gt": { + "$ref": "#/components/schemas/SequencesRangeValue" + }, + "lte": { + "$ref": "#/components/schemas/SequencesRangeValue" + }, + "lt": { + "$ref": "#/components/schemas/SequencesRangeValue" } } } } }, - "SequenceFilter": { + "SequencesPrefixFilter": { "type": "object", + "title": "prefix", + "required": [ + "prefix" + ], "properties": { - "name": { - "type": "string", - "description": "Returns only sequences with this name." - }, - "externalIdPrefix": { - "$ref": "#/components/schemas/CogniteExternalIdPrefix" - }, - "metadata": { - "description": "Filters the sequences by metadata fields and values. Format is {'key1':'value1','key2':'value2'}.", - "example": { - "key1": "value1", - "key2": "value2" - }, - "type": "object" - }, - "assetIds": { - "type": "array", - "description": "Returns only sequences linked to one of the specified assets.", - "example": [ - 363848954441724, - 793045462540095, - 1261042166839739 - ], - "items": { - "$ref": "#/components/schemas/CogniteInternalId" - }, - "minItems": 1, - "maxItems": 100, - "uniqueItems": true - }, - "rootAssetIds": { - "type": "array", - "description": "Only includes sequences that have a related asset in a tree rooted at any of these root `assetIds`.", - "example": [ - 363848954441724, - 793045462540095, - 1261042166839739 - ], - "items": { - "$ref": "#/components/schemas/CogniteInternalId" - }, - "minItems": 1, - "maxItems": 100, - "uniqueItems": true - }, - "assetSubtreeIds": { - "type": "array", - "description": "Only includes sequences that have a related asset in a subtree rooted at any of these `assetIds` (including the roots given). If the total size of the given subtrees exceeds 100,000 assets, an error will be returned.", - "example": [ - { - "id": 1234567890 + "prefix": { + "required": [ + "property", + "value" + ], + "description": "Matches items where the provided property begins with the given text.\n", + "type": "object", + "properties": { + "property": { + "$ref": "#/components/schemas/SequencesFilterProperty" }, - { - "externalId": "externalId123" + "value": { + "$ref": "#/components/schemas/SequencesStringValue" } - ], - "items": { - "$ref": "#/components/schemas/AssetIdEither" - }, - "minItems": 1, - "maxItems": 100, - "uniqueItems": true - }, - "createdTime": { - "$ref": "#/components/schemas/EpochTimestampRange" - }, - "lastUpdatedTime": { - "$ref": "#/components/schemas/EpochTimestampRange" - }, - "dataSetIds": { - "type": "array", - "maxItems": 100, - "uniqueItems": true, - "description": "Only includes sequences that belong to these datasets.", - "items": { - "$ref": "#/components/schemas/DataSetIdEither" } } } }, - "SequenceSearch": { + "SequencesExistsFilter": { "type": "object", + "title": "exists", + "required": [ + "exists" + ], "properties": { - "name": { - "description": "Prefix and fuzzy search on name.", - "type": "string" - }, - "description": { - "description": "Prefix and fuzzy search on description.", - "type": "string" - }, - "query": { - "description": "Searches on name and description using wildcard search on each of the words (separated by spaces). Retrieves results where at least one word must match. For example, '*some other*'.", - "type": "string" + "exists": { + "required": [ + "property" + ], + "description": "Matches items that have a value for the specified property.\n", + "type": "object", + "properties": { + "property": { + "$ref": "#/components/schemas/SequencesFilterProperty" + } + } } } }, - "SequencesSearchDTO": { + "SequencesContainsAnyFilter": { "type": "object", + "title": "containsAny", + "required": [ + "containsAny" + ], "properties": { - "filter": { - "$ref": "#/components/schemas/SequenceFilter" - }, - "search": { - "$ref": "#/components/schemas/SequenceSearch" - }, - "limit": { - "description": "Returns up to this many results.", - "maximum": 1000, - "minimum": 1, - "type": "integer", - "format": "int32", - "default": 100 + "containsAny": { + "required": [ + "property", + "values" + ], + "description": "Matches items where the property contains one or more of the given values.\nThis filter can only be applied to multivalued properties.\n", + "type": "object", + "properties": { + "property": { + "$ref": "#/components/schemas/SequencesFilterProperty" + }, + "values": { + "$ref": "#/components/schemas/SequencesValues" + } + } } } }, - "SequencesAdvancedListDTO": { - "allOf": [ - { + "SequencesContainsAllFilter": { + "type": "object", + "title": "containsAll", + "required": [ + "containsAll" + ], + "properties": { + "containsAll": { + "required": [ + "property", + "values" + ], + "description": "Matches items where the property contains all the given values.\nThis filter can only be applied to multivalued properties.\n", "type": "object", "properties": { - "filter": { - "$ref": "#/components/schemas/SequenceFilter" + "property": { + "$ref": "#/components/schemas/SequencesFilterProperty" }, - "advancedFilter": { - "$ref": "#/components/schemas/TimeSeriesFilterLanguage" + "values": { + "$ref": "#/components/schemas/SequencesValues" + } + } + } + } + }, + "SequencesSearchFilter": { + "type": "object", + "title": "search", + "required": [ + "search" + ], + "properties": { + "search": { + "required": [ + "property", + "value" + ], + "description": "Matches items where the provided string property contains the given value according to a fuzzy search.\nThe value may exist anywhere in the string, even as a part of a word or with some grammatical\nvariations (e.g., searching for \"run\" will also find \"ran\").\n\nThe supported properties are `name` and `description`. It's also possible to set `property`\nto `[\"query\"]`, in which case both `name` and `description` will be searched.\n\nWhen the `search` filter is being used, and it's not nested inside a `not` filter (directly or indirectly),\nand no `sort` is specified, the results will be ranked according to how good the match is.\nWhen the `query` 'property' is specified, matches in `name` will rank higher than matches in `description`.\nThe `search` filter may be used at most twice within the same `advancedFilter` expression.\n", + "type": "object", + "properties": { + "property": { + "$ref": "#/components/schemas/SequencesFilterProperty" }, - "limit": { - "description": "Returns up to this many results per page.", - "maximum": 1000, - "minimum": 1, - "type": "integer", - "format": "int32", - "default": 100 + "value": { + "$ref": "#/components/schemas/SequencesStringValue" } } + } + } + }, + "SequencesFilterProperty": { + "description": "The property on which you want to filter. May be either:\n- A single-element list that contains the name of one of the predefined top-level\n properties, in which case the filter will be applied to that top-level property.\n- A single-element list that contains `'metadata'`, in which case the filter will be applied\n to _all_ metadata properties.\n- A two-element list where the first element is `'metadata'` and the second one is any\n string, in which case the filter will be applied to metadata properties with that name.\n", + "type": "array", + "minItems": 1, + "maxItems": 2, + "items": { + "type": "string", + "minLength": 1, + "maxLength": 256 + } + }, + "SequencesValue": { + "description": "A value that you wish to find in the provided property.\n", + "oneOf": [ + { + "type": "string", + "maxLength": 256 }, { - "$ref": "#/components/schemas/Cursor" + "type": "number" }, { - "$ref": "#/components/schemas/PartitionObject" + "type": "integer" }, { - "$ref": "#/components/schemas/TimeSeriesSort" + "type": "boolean" } ] }, - "SequencesAggregateDTO": { - "type": "object", - "properties": { - "filter": { - "$ref": "#/components/schemas/SequenceFilter" - } + "SequencesValues": { + "description": "One or more values that you wish to find in the provided properties.\n", + "type": "array", + "minItems": 1, + "maxItems": 100, + "items": { + "$ref": "#/components/schemas/SequencesValue" } }, - "SequencesAdvancedAggregateDTO": { + "SequencesStringValue": { + "title": "String", + "description": "A value that you wish to find in the provided property.\n", + "type": "string", + "maxLength": 256 + }, + "SequencesRangeValue": { + "description": "An upper or lower bound in a `range` filter.", + "oneOf": [ + { + "type": "string", + "maxLength": 256 + }, + { + "type": "number" + }, + { + "type": "integer" + } + ] + }, + "SequencesAggregateFilter": { "type": "object", - "allOf": [ + "description": "A filter DSL (Domain Specific Language) to define aggregate filters.\n", + "oneOf": [ { - "properties": { - "advancedFilter": { - "$ref": "#/components/schemas/TimeSeriesFilterLanguage" - }, - "aggregateFilter": { - "$ref": "#/components/schemas/TimeSeriesAggregateFilter" - }, - "filter": { - "$ref": "#/components/schemas/SequenceFilter" - } - } + "$ref": "#/components/schemas/SequencesBoolAggregateFilter" }, { - "oneOf": [ - { - "$ref": "#/components/schemas/SequencesCountAggregate" - }, - { - "$ref": "#/components/schemas/SequencesCardinalityValuesAggregate" - }, - { - "$ref": "#/components/schemas/SequencesCardinalityPropertiesAggregate" - }, - { - "$ref": "#/components/schemas/SequencesUniqueValuesAggregate" - }, - { - "$ref": "#/components/schemas/SequencesUniquePropertiesAggregate" - } - ] + "$ref": "#/components/schemas/SequencesLeafAggregateFilter" } ] }, - "SequencesCountAggregate": { + "SequencesLeafAggregateFilter": { + "description": "Leaf filter.\n", + "title": "Leaf filter", "type": "object", - "title": "Count", - "properties": { - "aggregate": { - "description": "The `count` aggregation gets the number of sequences that match the filter(s). This is the\r\ndefault aggregation, which will also be applied if `aggregate` is not specified.\r\n", - "type": "string", - "enum": [ - "count" - ] + "oneOf": [ + { + "$ref": "#/components/schemas/SequencesInAggregateFilter" + }, + { + "$ref": "#/components/schemas/SequencesRangeAggregateFilter" + }, + { + "$ref": "#/components/schemas/SequencesPrefixAggregateFilter" } - } + ] }, - "SequencesCardinalityValuesAggregate": { - "title": "CardinalityValues", - "allOf": [ + "SequencesBoolAggregateFilter": { + "description": "A query that matches items matching boolean combinations of other queries.\nIt's built by nesting one or more Boolean clauses, each of which is one of `and`, `or`, and `not`.\nEach such clause contains one or more child clauses (though `not` can only have one).\nEach child clause can be either another Boolean clause or a leaf filter.\n", + "title": "Boolean filter", + "type": "object", + "oneOf": [ { "type": "object", + "title": "and", "required": [ - "aggregate" + "and" ], "properties": { - "aggregate": { - "description": "The `cardinalityValues` aggregation gets, from the sequences that match the filter(s),\r\nthe approximate number of unique values that are taken on by the given property.\r\n", - "type": "string", - "enum": [ - "cardinalityValues" - ] + "and": { + "title": "Aggregate filter DSL", + "description": "The aggregation result will only contain items that match _all_ of the given\nsub-clauses.\n", + "type": "array", + "minItems": 1, + "maxItems": 19, + "items": { + "$ref": "#/components/schemas/SequencesAggregateFilter" + } } } }, - { - "$ref": "#/components/schemas/SequencesAggregateProperties" - } - ] - }, - "SequencesCardinalityPropertiesAggregate": { - "title": "CardinalityProperties", - "allOf": [ { "type": "object", + "title": "or", "required": [ - "aggregate" + "or" ], "properties": { - "aggregate": { - "description": "The `cardinalityProperties` aggregation gets, from the sequences that match the filter(s),\r\nthe approximate number of unique properties whose property path begins with the given `path`.\r\nCurrently, the only supported value for `path` is `[\"metadata\"]`, which means that this aggregation\r\nwill get the approximate size of the set of unique metadata keys.\r\n", - "type": "string", - "enum": [ - "cardinalityProperties" - ] + "or": { + "title": "Aggregate filter DSL", + "description": "The aggregation result will only contain items that match _at least one_\n(but potentially many or even all) of the given sub-clauses.\n", + "type": "array", + "minItems": 1, + "maxItems": 19, + "items": { + "$ref": "#/components/schemas/SequencesAggregateFilter" + } } } }, - { - "$ref": "#/components/schemas/SequencesAggregatePath" - } - ] - }, - "SequencesUniqueValuesAggregate": { - "title": "UniqueValues", - "allOf": [ { "type": "object", + "title": "not", "required": [ - "aggregate" + "not" ], "properties": { - "aggregate": { - "description": "The `uniqueValues` aggregation gets, from the sequences that match the filter(s),\r\nthe set of unique values (up to max 1000) that are taken on by the given property. For each such\r\nvalue, the aggregation result will also specify the frequency - that is, the number of sequences\r\nthat match the filter(s) and have that property value. The results are ordered by frequency in\r\ndescending order.\r\n", - "type": "string", - "enum": [ - "uniqueValues" + "not": { + "title": "Aggregate filter DSL", + "description": "The aggregation result will only contain items that do _not_ match the given\nsub-clause.\n", + "type": "object", + "allOf": [ + { + "$ref": "#/components/schemas/SequencesAggregateFilter" + } ] } } - }, - { - "$ref": "#/components/schemas/SequencesAggregateProperties" } ] }, - "SequencesUniquePropertiesAggregate": { - "title": "UniqueProperties", - "allOf": [ - { + "SequencesInAggregateFilter": { + "type": "object", + "title": "in", + "required": [ + "in" + ], + "properties": { + "in": { + "required": [ + "values" + ], + "description": "Matches intermediate aggregation results where the property key or the property value is _exactly_\nequal to one of the given values. When the `aggregate` operation is `uniqueProperties` or\n`cardinalityProperties`, property _keys_ will be targeted; when it is `uniqueValues` or\n`cardinalityValues`, property _values_ will be targeted.\n", "type": "object", + "properties": { + "values": { + "$ref": "#/components/schemas/SequencesInAggregateValues" + } + } + } + } + }, + "SequencesPrefixAggregateFilter": { + "type": "object", + "title": "prefix", + "required": [ + "prefix" + ], + "properties": { + "prefix": { "required": [ - "aggregate" + "value" ], + "description": "Matches intermediate aggregation results where the property key or the property value begins with\nthe given text. When the `aggregate` operation is `uniqueProperties` or `cardinalityProperties`,\nproperty _keys_ will be targeted; when it is `uniqueValues` or `cardinalityValues`, property\n_values_ will be targeted.\n", + "type": "object", "properties": { - "aggregate": { - "description": "The `uniqueProperties` aggregation gets, from the sequences that match the filter(s),\r\nthe set of unique properties (up to max 1000) whose property path begins with the given `path`.\r\nCurrently, the only supported value for `path` is `[\"metadata\"]`, which means that this aggregation\r\nwill get the set of unique metadata keys. For each such property, the aggregation result will also\r\nspecify the frequency - that is, the number of sequences that match the filter(s) and have that\r\nproperty. The results are ordered by frequency in descending order.\r\n", - "type": "string", - "enum": [ - "uniqueProperties" - ] + "value": { + "$ref": "#/components/schemas/SequencesPrefixAggregateValue" + } + } + } + } + }, + "SequencesRangeAggregateFilter": { + "type": "object", + "title": "range", + "required": [ + "range" + ], + "properties": { + "range": { + "description": "Matches intermediate aggregation results where the property key or the property value is within the\nprovided range. When the `aggregate` operation is `uniqueProperties` or `cardinalityProperties`,\nproperty _keys_ will be targeted; when it is `uniqueValues` or `cardinalityValues`, property \n_values_ will be targeted.\n\nAt least one of the following bounds must be specified:\n- `gte`: Greater than or equal to.\n- `gt`: Greater than.\n- `lte`: Less than or equal to.\n- `lt`: Less than.\n\nIt is not valid to specify both inclusive and exclusive bounds \"on the same side\" together:\nat most one of `lte` and `lt` may be specified, and at most one of `gte` and `gt`.\n\nIn the case of `aggregate` being `uniqueProperties` or `cardinalityProperties`,\n`gte`/`gt`/`lte`/`lt` must be set to a string. In the case of `aggregate` being `uniqueValues` or\n`cardinalityValues`, this filter may only be applied to string properties or number properties,\nwith `gte`/`gt`/`lte`/`lt` containing values of the corresponding type.\n", + "type": "object", + "properties": { + "gte": { + "$ref": "#/components/schemas/SequencesRangeAggregateValue" + }, + "gt": { + "$ref": "#/components/schemas/SequencesRangeAggregateValue" + }, + "lte": { + "$ref": "#/components/schemas/SequencesRangeAggregateValue" + }, + "lt": { + "$ref": "#/components/schemas/SequencesRangeAggregateValue" } } + } + } + }, + "SequencesInAggregateValues": { + "description": "The property keys or property values (depending on the `aggregate` operation) on which you want to\nfilter the intermediate aggregate results.\n", + "type": "array", + "minItems": 1, + "maxItems": 100, + "items": { + "$ref": "#/components/schemas/SequencesInAggregateValue" + } + }, + "SequencesInAggregateValue": { + "description": "The property key or property value (depending on the `aggregate` operation) on which you want to\nfilter the intermediate aggregate results.\n", + "oneOf": [ + { + "type": "string", + "maxLength": 256 }, { - "$ref": "#/components/schemas/SequencesAggregatePath" + "type": "number" + }, + { + "type": "integer" + }, + { + "type": "boolean" } ] }, - "SequencesAggregateProperties": { + "SequencesPrefixAggregateValue": { + "title": "String", + "description": "A string value that represents either a property key or a property value, depending on the\n`aggregate` operation.\n", + "type": "string", + "maxLength": 256 + }, + "SequencesRangeAggregateValue": { + "description": "An upper or lower bound for a property key or property value (depending on which `aggregate` was\nspecified at the top level of the aggregation request).\n", + "oneOf": [ + { + "type": "string", + "maxLength": 256 + }, + { + "type": "number" + }, + { + "type": "integer" + } + ] + }, + "SequencesSort": { "type": "object", - "required": [ - "properties" - ], "properties": { - "properties": { + "sort": { + "description": "Sort by array of selected properties.\n", "type": "array", - "description": "The properties to which the aggregation should be applied. While this parameter is a list, it\r\ncurrently only accepts one element. Each element is an object with a single field called `property`,\r\nwhose value is another list (in order to accommodate nested properties). Thus, a top-level property\r\n`name` must be specified as `[{\"property\": [\"name\"]}]`, and a metadata property `tag` must be\r\nspecified as `[{\"property\": [\"metadata\", \"tag\"]}]`.\r\n\r\nThe supported top-level properties are:\r\n- `accessCategories`\r\n- `assetId`\r\n- `assetRootId`\r\n- `createdTime`\r\n- `dataSetId`\r\n- `description`\r\n- `externalId`\r\n- `id`\r\n- `lastUpdatedTime`\r\n- `name`\r\n", "minItems": 1, - "maxItems": 1, + "maxItems": 2, "items": { - "type": "object", - "required": [ - "property" - ], - "properties": { - "property": { - "type": "array", - "minItems": 1, - "maxItems": 2, - "items": { - "type": "string", - "minLength": 1, - "maxLength": 128 - } - } - } + "$ref": "#/components/schemas/SequencesSortItem" } } } }, - "SequencesAggregatePath": { + "SequencesSortItem": { "type": "object", "required": [ - "path" + "property" ], "properties": { - "path": { - "description": "The scope within which properties should be aggregated. The only value that is currently allowed is `['metadata']`, which will aggregate metadata keys.", + "property": { "type": "array", + "description": "Property to sort on.\nSorting can be done on the following properties:\n | Property |\n |-----------------------------------|\n | `['assetId']` |\n | `['createdTime']` |\n | `['dataSetId']` |\n | `['description']` |\n | `['externalId']` |\n | `['lastUpdatedTime']` |\n | `['metadata', '']` |\n | `['name']` |\n | `['_score_']` |", "minItems": 1, - "maxItems": 1, + "maxItems": 2, "items": { "type": "string", - "enum": [ - "metadata" - ] + "maxLength": 128 } + }, + "order": { + "type": "string", + "description": "The `order` attribute is optional and defaults to `desc` for `_score_` and `asc` for all\nother properties.", + "enum": [ + "asc", + "desc" + ] + }, + "nulls": { + "type": "string", + "description": "The `nulls` attribute is optional and defaults to `auto`. `auto` is translated to `last`\nfor the `asc` order and to `first` for the `desc` order.", + "enum": [ + "first", + "last", + "auto" + ], + "default": "auto" } } }, - "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" - ] - }, "LabelDefinitionCreateList": { "type": "object", "required": [ @@ -43026,13 +48606,34 @@ "example": "1234", "description": "The external ID of a file in CDF. The file must have mime_type application/pdf, image/jpeg, image/png or image/tiff." }, + "DiagramInstanceId": { + "type": "object", + "required": [ + "space", + "externalId" + ], + "example": { + "space": "space", + "externalId": "externalId" + }, + "description": "The instance id of a file in CDF. The file must have mime_type application/pdf, image/jpeg, image/png or image/tiff.", + "properties": { + "space": { + "$ref": "#/components/schemas/InstanceSpace" + }, + "externalId": { + "$ref": "#/components/schemas/InstanceExternalId" + } + } + }, "OneOfFileId": { "type": "object", "required": [ "fileId", - "fileExternalId" + "fileExternalId", + "fileInstanceId" ], - "description": "An object containing file (external) id. The file can have at most 50 pages.", + "description": "An object containing file (external/instance) id. The file can have at most 50 pages.", "oneOf": [ { "properties": { @@ -43047,6 +48648,13 @@ "$ref": "#/components/schemas/DiagramFileExternalId" } } + }, + { + "properties": { + "fileInstanceId": { + "$ref": "#/components/schemas/DiagramInstanceId" + } + } } ] }, @@ -43076,9 +48684,10 @@ "type": "object", "required": [ "fileId", - "fileExternalId" + "fileExternalId", + "fileInstanceId" ], - "description": "Either file id or file external id, and optionally a page range. At most 50 pages can be given", + "description": "Either file id, external id or instance id, and optionally a page range. At most 50 pages can be queried.", "oneOf": [ { "properties": { @@ -43093,6 +48702,13 @@ "$ref": "#/components/schemas/DiagramFileExternalId" } } + }, + { + "properties": { + "fileInstanceId": { + "$ref": "#/components/schemas/DiagramInstanceId" + } + } } ], "properties": { @@ -43112,6 +48728,9 @@ }, "fileExternalId": { "$ref": "#/components/schemas/DiagramFileExternalId" + }, + "fileInstanceId": { + "$ref": "#/components/schemas/DiagramInstanceId" } } }, @@ -43127,6 +48746,9 @@ "fileExternalId": { "$ref": "#/components/schemas/DiagramFileExternalId" }, + "fileInstanceId": { + "$ref": "#/components/schemas/DiagramInstanceId" + }, "pageRange": { "$ref": "#/components/schemas/PageRange" }, @@ -44730,13 +50352,34 @@ "example": "1234", "description": "The external ID of a file in CDF." }, + "VisionInstanceId": { + "type": "object", + "required": [ + "space", + "externalId" + ], + "example": { + "space": "space", + "externalId": "externalId" + }, + "description": "The instance id of a file in CDF.", + "properties": { + "space": { + "$ref": "#/components/schemas/InstanceSpace" + }, + "externalId": { + "$ref": "#/components/schemas/InstanceExternalId" + } + } + }, "FileReference": { "type": "object", "required": [ "fileId", - "fileExternalId" + "fileExternalId", + "fileInstanceId" ], - "description": "An object containing file (external) id.", + "description": "An external-id or instance-id reference to the referenced file.", "oneOf": [ { "type": "object", @@ -44759,6 +50402,17 @@ "$ref": "#/components/schemas/VisionFileExternalId" } } + }, + { + "type": "object", + "required": [ + "fileInstanceId" + ], + "properties": { + "fileInstanceId": { + "$ref": "#/components/schemas/VisionInstanceId" + } + } } ] }, @@ -44773,6 +50427,9 @@ }, "fileExternalId": { "$ref": "#/components/schemas/VisionFileExternalId" + }, + "fileInstanceId": { + "$ref": "#/components/schemas/VisionInstanceId" } } }, @@ -44795,7 +50452,7 @@ }, "ThresholdParameter": { "title": "Threshold", - "description": "The confidence threshold returns predictions as positive if their confidence score is the selected value or higher. \nA higher confidence threshold increases precision but lowers recall, and vice versa.\n", + "description": "The confidence threshold returns predictions as positive if their confidence score is the selected value or higher.\nA higher confidence threshold increases precision but lowers recall, and vice versa.\n", "type": "number", "example": 0.8, "minimum": 0, @@ -44956,7 +50613,7 @@ "$ref": "#/components/schemas/ThresholdParameter" }, "partialMatch": { - "description": "Allow partial (fuzzy) matching of detected external IDs in the file. \nWill only match when it is possible to do so unambiguously.\n", + "description": "Allow partial (fuzzy) matching of detected external IDs in the file.\nWill only match when it is possible to do so unambiguously.\n", "type": "boolean", "default": false, "example": true @@ -44966,7 +50623,7 @@ "items": { "type": "integer" }, - "description": "Search for external ID or name of assets that are in a subtree rooted at one of \nthe assetSubtreeIds (including the roots given).\n", + "description": "Search for external ID or name of assets that are in a subtree rooted at one of\nthe assetSubtreeIds (including the roots given).\n", "example": [ 1, 2 @@ -45127,7 +50784,7 @@ "assetTagPredictions": { "type": "array", "items": { - "$ref": "#/components/schemas/Annotations.cognite__annotation_types__images__AssetLink" + "$ref": "#/components/schemas/Annotations.cogmono__annotation_types__images__AssetLink" } }, "peoplePredictions": { @@ -45394,6 +51051,24 @@ } } }, + "DocumentQAAnswer": { + "properties": { + "content": { + "items": { + "$ref": "#/components/schemas/DocumentQAAnswerContent" + }, + "type": "array", + "title": "Content", + "description": "The content of an answer consists of one or more parts. Each part can have a different set of document locations connected to it." + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "content" + ], + "title": "Answer" + }, "ChatCompletionRequest": { "properties": { "n": { @@ -45403,56 +51078,60 @@ "default": 1 }, "presencePenalty": { + "title": "Presencepenalty", + "description": "Number between -2.0 and 2.0. Positive values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics.", "type": "number", "maximum": 2, - "minimum": -2, - "title": "Presencepenalty", - "description": "Number between -2.0 and 2.0. Positive values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics." + "minimum": -2 }, "frequencyPenalty": { + "title": "Frequencypenalty", + "description": "Number between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim.", "type": "number", "maximum": 2, - "minimum": -2, - "title": "Frequencypenalty", - "description": "Number between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim." + "minimum": -2 }, "stop": { + "title": "Stop", + "description": "Up to 4 sequences where the API will stop generating further tokens.", "items": { "type": "string" }, "type": "array", "maxItems": 4, - "minItems": 1, - "title": "Stop", - "description": "Up to 4 sequences where the API will stop generating further tokens." + "minItems": 1 }, "logitBias": { + "title": "Logitbias", + "description": "Modify the likelihood of specified tokens appearing in the completion. Accepts a json object that maps tokens (specified by their token ID in the tokenizer) to an associated bias value from -100 to 100. Mathematically, the bias is added to the logits generated by the model prior to sampling. The exact effect will vary per model, but values between -1 and 1 should decrease or increase likelihood of selection; values like -100 or 100 should result in a ban or exclusive selection of the relevant token.", "additionalProperties": { "type": "number" }, - "type": "object", - "title": "Logitbias", - "description": "Modify the likelihood of specified tokens appearing in the completion. Accepts a json object that maps tokens (specified by their token ID in the tokenizer) to an associated bias value from -100 to 100. Mathematically, the bias is added to the logits generated by the model prior to sampling. The exact effect will vary per model, but values between -1 and 1 should decrease or increase likelihood of selection; values like -100 or 100 should result in a ban or exclusive selection of the relevant token." + "type": "object" }, "user": { + "title": "User", + "description": "A unique identifier representing your end-user, which can help Azure GPT to monitor and detect abuse.", "type": "string", "maxLength": 128, - "minLength": 1, - "title": "User", - "description": "A unique identifier representing your end-user, which can help Azure GPT to monitor and detect abuse." + "minLength": 1 }, "functions": { + "title": "Functions", + "description": "A list of functions the model may generate JSON inputs for.", + "deprecated": true, "items": { "$ref": "#/components/schemas/GPTFunctions" }, "type": "array", "maxItems": 10, - "minItems": 1, - "title": "Functions", - "description": "A list of functions the model may generate JSON inputs for." + "minItems": 1 }, "functionCall": { - "anyOf": [ + "title": "Functioncall", + "description": "Controls how the model responds to function calls. \"none\" means the model does not call a function,\nand responds to the end-user. \"auto\" means the model can pick between an end-user or calling a function.\n Specifying a particular function via `{\"name\": \"my_function\"}` forces the model to call that function.\n \"none\" is the default when no functions are present. \"auto\" is the default if functions are present.", + "deprecated": true, + "oneOf": [ { "$ref": "#/components/schemas/GPTFunctionName" }, @@ -45463,16 +51142,40 @@ "auto" ] } - ], - "title": "Functioncall", - "description": "Controls how the model responds to function calls. \"none\" means the model does not call a function,\nand responds to the end-user. \"auto\" means the model can pick between an end-user or calling a function.\n Specifying a particular function via `{\"name\": \"my_function\"}` forces the model to call that function.\n \"none\" is the default when no functions are present. \"auto\" is the default if functions are present." + ] }, - "messages": { + "tools": { + "title": "Tools", + "description": "A list of tools the model may use", "items": { - "$ref": "#/components/schemas/ChatMessage" + "$ref": "#/components/schemas/GPTTool" }, "type": "array", "maxItems": 10, + "minItems": 1 + }, + "toolChoice": { + "title": "Toolchoice", + "description": "Controls which (if any) tool is called by the model. `none` means the model will not call any tool and instead generates a message. `auto` means the model can pick between generating a message or calling one or more tools. Specifying a particular tool via `{\"type\": \"function\", \"function\": {\"name\": \"my_function\"}}` forces the model to call that tool.", + "oneOf": [ + { + "$ref": "#/components/schemas/GPTFunctionName" + }, + { + "type": "string", + "enum": [ + "none", + "auto" + ] + } + ] + }, + "messages": { + "items": { + "$ref": "#/components/schemas/ChatMessage-Input" + }, + "type": "array", + "maxItems": 100, "minItems": 1, "title": "Messages", "description": "The messages to generate chat completions for, in the chat format." @@ -45480,11 +51183,10 @@ "model": { "allOf": [ { - "$ref": "#/components/schemas/LLMModel" + "$ref": "#/components/schemas/LanguageModelKind" } ], - "description": "Name of the model to use.", - "default": "gpt-35-turbo" + "description": "Name of the model to use." }, "temperature": { "type": "number", @@ -45496,6 +51198,7 @@ }, "maxTokens": { "type": "integer", + "exclusiveMinimum": 0, "title": "Maxtokens", "description": "The maximum number of tokens to generate in the completion. The token count of your prompt plus maxTokens can't exceed the model's context length", "default": 2000 @@ -45510,197 +51213,766 @@ "additionalProperties": false, "type": "object", "required": [ - "messages" + "messages" + ], + "title": "ChatCompletionRequest" + }, + "ChatCompletionsResponse": { + "properties": { + "model": { + "allOf": [ + { + "$ref": "#/components/schemas/LanguageModelKind" + } + ], + "description": "The model used" + }, + "created": { + "type": "integer", + "title": "Created", + "description": "The time the completion was created" + }, + "choices": { + "items": { + "$ref": "#/components/schemas/Choice" + }, + "type": "array", + "title": "Choices", + "description": "The list of completion choices" + }, + "usage": { + "allOf": [ + { + "$ref": "#/components/schemas/Usage" + } + ], + "description": "The usage of the completion" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "model", + "created", + "choices", + "usage" + ], + "title": "ChatCompletionsResponse" + }, + "ChatCompletionsStreamResponse": { + "properties": { + "model": { + "allOf": [ + { + "$ref": "#/components/schemas/LanguageModelKind" + } + ], + "description": "The model used" + }, + "created": { + "type": "integer", + "title": "Created", + "description": "The time the completion was created" + }, + "choices": { + "items": { + "$ref": "#/components/schemas/StreamChoice" + }, + "type": "array", + "title": "Choices", + "description": "The list of completion choices" + }, + "usage": { + "description": "The token usage related to the completion chunk", + "$ref": "#/components/schemas/Usage" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "model", + "created", + "choices" + ], + "title": "ChatCompletionsStreamResponse" + }, + "ChatMessage-Input": { + "properties": { + "content": { + "title": "Content", + "description": "The contents of the message.", + "oneOf": [ + { + "type": "string" + }, + { + "items": { + "$ref": "#/components/schemas/GPTContent" + }, + "type": "array" + } + ] + }, + "role": { + "allOf": [ + { + "$ref": "#/components/schemas/ChatMessageRole" + } + ], + "description": "The role of the author of this message." + }, + "name": { + "title": "Name", + "description": "The name of a function in a function call.", + "type": "string" + }, + "functionCall": { + "description": "The name and arguments of a function that should be called, as generated by the model.", + "$ref": "#/components/schemas/GPTFunctionCall" + }, + "toolCalls": { + "title": "Toolcalls", + "description": "The tools to be called", + "items": { + "$ref": "#/components/schemas/GPTToolCall" + }, + "type": "array" + }, + "toolCallId": { + "title": "Toolcallid", + "description": "The ID of the tool to be called", + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "role" + ], + "title": "ChatMessage" + }, + "ChatMessage-Output": { + "properties": { + "content": { + "title": "Content", + "description": "The contents of the message.", + "oneOf": [ + { + "type": "string" + }, + { + "items": { + "$ref": "#/components/schemas/GPTContent" + }, + "type": "array" + } + ] + }, + "role": { + "allOf": [ + { + "$ref": "#/components/schemas/ChatMessageRole" + } + ], + "description": "The role of the author of this message." + }, + "name": { + "title": "Name", + "description": "The name of a function in a function call.", + "type": "string" + }, + "functionCall": { + "description": "The name and arguments of a function that should be called, as generated by the model.", + "$ref": "#/components/schemas/GPTFunctionCall" + }, + "toolCalls": { + "title": "Toolcalls", + "description": "The tools to be called", + "items": { + "$ref": "#/components/schemas/GPTToolCall" + }, + "type": "array" + }, + "toolCallId": { + "title": "Toolcallid", + "description": "The ID of the tool to be called", + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "role" + ], + "title": "ChatMessage" + }, + "ChatMessageRole": { + "type": "string", + "enum": [ + "user", + "system", + "assistant", + "function", + "tool" + ], + "title": "ChatMessageRole" + }, + "Choice": { + "properties": { + "message": { + "allOf": [ + { + "$ref": "#/components/schemas/ChatMessage-Output" + } + ], + "description": "The generated completion in the chat format" + }, + "finishReason": { + "type": "string", + "title": "Finishreason", + "description": "The reason the conversation ended" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "message", + "finishReason" + ], + "title": "Choice" + }, + "CodeEditRequest": { + "properties": { + "prompt": { + "type": "string", + "maxLength": 2048, + "minLength": 10, + "title": "Prompt", + "description": "The query to be completed." + }, + "previousCodeContext": { + "title": "Previouscodecontext", + "description": "Previously executed code.", + "type": "string", + "maxLength": 16384 + }, + "currentCode": { + "type": "string", + "maxLength": 4096, + "title": "Currentcode", + "description": "Code to edit." + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "prompt", + "currentCode" + ], + "title": "CodeEditRequest" + }, + "CodeGenerationRequest": { + "properties": { + "prompt": { + "type": "string", + "maxLength": 2048, + "minLength": 10, + "title": "Prompt", + "description": "The query to be completed." + }, + "previousCodeContext": { + "title": "Previouscodecontext", + "description": "Previously executed code.", + "type": "string", + "maxLength": 16384 + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "prompt" + ], + "title": "CodeGenerationRequest" + }, + "Completion": { + "additionalProperties": false, + "properties": { + "content": { + "description": "Generated content", + "title": "Content", + "type": "string" + }, + "previous_context": { + "description": "Previous context", + "items": { + "type": "object" + }, + "title": "Previous Context", + "type": "array" + } + }, + "required": [ + "content", + "previous_context" + ], + "title": "Completion", + "type": "object" + }, + "DocumentQAAnswerContent": { + "properties": { + "text": { + "type": "string", + "title": "Text", + "description": "A part of the answer from the LLM." + }, + "references": { + "items": { + "$ref": "#/components/schemas/DocumentQAAnswerReference" + }, + "type": "array", + "title": "References", + "description": "The document locations that this part of the answer is sourced from" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "text" + ], + "title": "Content" + }, + "CogAIDataModel": { + "properties": { + "space": { + "type": "string", + "maxLength": 43, + "minLength": 1, + "title": "Space", + "description": "The space the data model is in" + }, + "externalId": { + "type": "string", + "maxLength": 255, + "minLength": 1, + "title": "Externalid", + "description": "The external ID of the data model" + }, + "version": { + "type": "string", + "title": "Version", + "description": "The version of the data model" + } + }, + "type": "object", + "required": [ + "space", + "externalId", + "version" + ], + "title": "DataModel" + }, + "DataModelType": { + "properties": { + "space": { + "type": "string", + "maxLength": 43, + "minLength": 1, + "title": "Space", + "description": "The space the data model is in" + }, + "externalId": { + "type": "string", + "maxLength": 255, + "minLength": 1, + "title": "Externalid", + "description": "The external ID of the data model" + }, + "version": { + "type": "string", + "title": "Version", + "description": "The version of the data model" + }, + "type": { + "type": "string", + "maxLength": 255, + "minLength": 1, + "title": "Type", + "description": "Relevant data model type" + } + }, + "type": "object", + "required": [ + "space", + "externalId", + "version", + "type" + ], + "title": "DataModelType" + }, + "DocumentQARequest": { + "properties": { + "question": { + "type": "string", + "maxLength": 2048, + "minLength": 10, + "title": "Question", + "description": "Question to ask about the documents" + }, + "additionalContext": { + "title": "Additionalcontext", + "description": "Optional additional context that the model can use to improve its answer", + "type": "string", + "maxLength": 2048, + "minLength": 10 + }, + "fileIds": { + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/FileId" + }, + { + "$ref": "#/components/schemas/CogAIFileExternalId" + } + ] + }, + "type": "array", + "maxItems": 100, + "minItems": 1, + "title": "Fileids", + "description": "List of file ids or external ids" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "question", + "fileIds" ], - "title": "ChatCompletionRequest" + "title": "DocumentQARequest" }, - "ChatCompletionsResponse": { + "DocumentSummarizationRequest": { + "additionalProperties": false, "properties": { - "model": { + "items": { + "description": "List of documents to summarize", + "items": { + "$ref": "#/components/schemas/DocumentSummarizationRequestItem" + }, + "maxItems": 1, + "minItems": 1, + "title": "Items", + "type": "array" + }, + "ignoreMissing": { + "default": false, + "description": "If True, the API will not fail if any documents are missing, but summaries for the missing documents will be excluded from the response.", + "title": "IgnoreMissing", + "type": "boolean" + } + }, + "required": [ + "items" + ], + "title": "DocumentSummarizationRequest", + "type": "object" + }, + "DocumentSummarizationRequestItem": { + "additionalProperties": false, + "properties": { + "id": { + "description": "The file ID for the document. Either id or externalId must be provided.", + "title": "Id", + "type": "integer", + "example": 123, "allOf": [ { - "$ref": "#/components/schemas/LLMModel" + "$ref": "#/components/schemas/CogniteInternalId" } - ], - "description": "The model used" - }, - "created": { - "type": "integer", - "title": "Created", - "description": "The time the completion was created" - }, - "choices": { - "items": { - "$ref": "#/components/schemas/Choice" - }, - "type": "array", - "title": "Choices", - "description": "The list of completion choices" + ] }, - "usage": { + "externalId": { + "description": "The external ID for the document. This value matches the externalId set in the Files API.", + "title": "ExternalId", + "type": "string", + "example": "file-external-id", "allOf": [ { - "$ref": "#/components/schemas/Usage" + "$ref": "#/components/schemas/CogniteExternalId" } - ], - "description": "The usage of the completion" + ] } }, + "required": [ + "id" + ], + "title": "DocumentSummarizationRequestItem", + "type": "object" + }, + "DocumentSummarizationResponse": { "additionalProperties": false, - "type": "object", + "properties": { + "items": { + "description": "List of documents with summaries", + "items": { + "$ref": "#/components/schemas/DocumentSummarizationResponseItem" + }, + "title": "Items", + "type": "array" + } + }, "required": [ - "model", - "created", - "choices", - "usage" + "items" ], - "title": "ChatCompletionsResponse" + "title": "DocumentSummarizationResponse", + "type": "object" }, - "ChatCompletionsStreamResponse": { + "DocumentSummarizationResponseItem": { + "additionalProperties": false, "properties": { - "model": { + "id": { + "description": "The file ID for the document. Either id or externalId must be provided.", + "title": "Id", + "type": "integer", + "example": 123, "allOf": [ { - "$ref": "#/components/schemas/LLMModel" + "$ref": "#/components/schemas/CogniteInternalId" } - ], - "description": "The model used" + ] }, - "created": { - "type": "integer", - "title": "Created", - "description": "The time the completion was created" + "externalId": { + "description": "The external ID for the document. This value matches the externalId set in the Files API.", + "title": "ExternalId", + "type": "string", + "example": "file-external-id", + "allOf": [ + { + "$ref": "#/components/schemas/CogniteExternalId" + } + ] }, - "choices": { + "summary": { + "description": "Summary of the document", + "title": "Summary", + "type": "string" + } + }, + "required": [ + "summary" + ], + "title": "DocumentSummarizationResponseItem", + "type": "object" + }, + "EmbeddingAPIRequest": { + "additionalProperties": false, + "properties": { + "dimensions": { + "description": "The number of dimensions the resulting output embeddings should have. Only supported for certain models.", + "title": "Dimensions", + "type": "integer" + }, + "encodingFormat": { + "$ref": "#/components/schemas/EncodingFormat", + "default": "float", + "description": "The encoding for the document. Currently, we only support float." + }, + "items": { + "description": "List of items to create Embeddings for.", "items": { - "$ref": "#/components/schemas/StreamChoice" + "$ref": "#/components/schemas/EmbeddingsAPIRequestItem" }, - "type": "array", - "title": "Choices", - "description": "The list of completion choices" + "maxItems": 100, + "minItems": 1, + "title": "Items", + "type": "array" }, - "usage": { - "$ref": "#/components/schemas/Usage", - "description": "The token usage related to the completion chunk" + "model": { + "$ref": "#/components/schemas/EmbeddingModelKind", + "description": "The model to use for vectorization." } }, - "additionalProperties": false, - "type": "object", "required": [ "model", - "created", - "choices" + "items" ], - "title": "ChatCompletionsStreamResponse" + "title": "EmbeddingAPIRequest", + "type": "object" }, - "ChatMessage": { + "EmbeddingAPIResponse": { + "additionalProperties": false, "properties": { - "content": { - "type": "string", - "title": "Content", - "description": "The contents of the message." + "dimensions": { + "description": "The number of dimensions the resulting output embeddings should have. Only supported for certain models.", + "title": "Dimensions", + "type": "integer" }, - "role": { - "allOf": [ - { - "$ref": "#/components/schemas/ChatMessageRole" - } - ], - "description": "The role of the author of this message." + "encodingFormat": { + "$ref": "#/components/schemas/EncodingFormat", + "default": "float", + "description": "The encoding for the document. Currently, we only support float." }, - "name": { - "type": "string", - "title": "Name", - "description": "The name of a function in a function call." + "items": { + "description": "List of Items that we created embeddings for.", + "items": { + "$ref": "#/components/schemas/EmbeddingAPIResponseItem" + }, + "title": "Items", + "type": "array" }, - "functionCall": { - "$ref": "#/components/schemas/GPTFunctionCall", - "description": "The name and arguments of a function that should be called, as generated by the model." + "model": { + "$ref": "#/components/schemas/EmbeddingModelKind", + "description": "The model to use for vectorization." } }, + "required": [ + "model", + "items" + ], + "title": "EmbeddingAPIResponse", + "type": "object" + }, + "EmbeddingAPIResponseItem": { "additionalProperties": false, - "type": "object", + "properties": { + "embedding": { + "description": "The Embedding results for the text requested.", + "items": { + "type": "number" + }, + "title": "Embedding", + "type": "array" + }, + "text": { + "description": "The text data that will be vectorized.", + "maxLength": 1000000, + "title": "Text", + "type": "string" + } + }, "required": [ - "role" + "text" ], - "title": "ChatMessage" + "title": "EmbeddingAPIResponseItem", + "type": "object" }, - "ChatMessageRole": { - "type": "string", + "EmbeddingModelKind": { "enum": [ - "user", - "system", - "assistant", - "function" + "text-embedding-ada-002", + "text-embedding-3-small", + "text-embedding-3-large" ], - "title": "ChatMessageRole" + "title": "EmbeddingModelKind", + "type": "string" }, - "Choice": { + "EmbeddingsAPIRequestItem": { + "additionalProperties": false, "properties": { - "message": { - "allOf": [ - { - "$ref": "#/components/schemas/ChatMessage" - } - ], - "description": "The generated completion in the chat format" - }, - "finishReason": { + "text": { + "description": "The text data that will be vectorized.", + "maxLength": 1000000, + "title": "Text", + "type": "string" + } + }, + "required": [ + "text" + ], + "title": "EmbeddingsAPIRequestItem", + "type": "object" + }, + "EncodingFormat": { + "const": "float", + "enum": [ + "float" + ], + "title": "EncodingFormat", + "type": "string" + }, + "CogAIFileExternalId": { + "properties": { + "externalId": { "type": "string", - "title": "Finishreason", - "description": "The reason the conversation ended" + "title": "Externalid" } }, "additionalProperties": false, "type": "object", "required": [ - "message", - "finishReason" + "externalId" ], - "title": "Choice" + "title": "FileExternalId" }, - "CodeGenerationRequest": { + "FileId": { "properties": { - "prompt": { + "id": { + "type": "integer", + "title": "Id" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "id" + ], + "title": "FileId" + }, + "GPTContent": { + "properties": { + "type": { "type": "string", - "maxLength": 2048, - "minLength": 10, - "title": "Prompt", - "description": "The query to be completed." + "enum": [ + "text", + "image_url" + ], + "title": "Type", + "description": "The type of content" }, - "currentCode": { - "type": "string", - "maxLength": 4096, - "title": "Currentcode", - "description": "Code to edit." + "text": { + "title": "Text", + "description": "The text content", + "type": "string" }, - "previousCodeContext": { + "imageUrl": { + "description": "The URL of the image", + "$ref": "#/components/schemas/GPTContentImageURL" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "type" + ], + "title": "GPTContent" + }, + "GPTContentImageURL": { + "properties": { + "url": { "type": "string", - "maxLength": 16384, - "title": "Previouscodecontext", - "description": "Previously executed code." + "title": "Url", + "description": "The URL of the image" } }, "additionalProperties": false, "type": "object", "required": [ - "prompt" + "url" ], - "title": "CodeGenerationRequest" + "title": "GPTContentImageURL" }, "GPTFunctionCall": { "properties": { "name": { + "title": "Name", + "description": "The name of the function to be called. Must be a-z, A-Z, 0-9, or contain underscores and dashes, with a maximum length of 64.", "type": "string", "maxLength": 64, - "minLength": 1, - "title": "Name", - "description": "The name of the function to be called. Must be a-z, A-Z, 0-9, or contain underscores and dashes, with a maximum length of 64." + "minLength": 1 }, "arguments": { - "type": "string", "title": "Arguments", - "description": "The arguments to call the function with, as generated by the model in JSON format. Note that the model does not always generate valid JSON, and may fabricate parameters not defined by your function schema. Validate the arguments in your code before calling your function." + "description": "The arguments to call the function with, as generated by the model in JSON format. Note that the model does not always generate valid JSON, and may fabricate parameters not defined by your function schema. Validate the arguments in your code before calling your function.", + "type": "string" } }, "additionalProperties": false, @@ -45710,11 +51982,11 @@ "GPTFunctionName": { "properties": { "name": { + "title": "Name", + "description": "The name of the function to be called. Must be a-z, A-Z, 0-9, or contain underscores and dashes, with a maximum length of 64.", "type": "string", "maxLength": 64, - "minLength": 1, - "title": "Name", - "description": "The name of the function to be called. Must be a-z, A-Z, 0-9, or contain underscores and dashes, with a maximum length of 64." + "minLength": 1 } }, "additionalProperties": false, @@ -45727,16 +51999,16 @@ "GPTFunctions": { "properties": { "name": { + "title": "Name", + "description": "The name of the function to be called. Must be a-z, A-Z, 0-9, or contain underscores and dashes, with a maximum length of 64.", "type": "string", "maxLength": 64, - "minLength": 1, - "title": "Name", - "description": "The name of the function to be called. Must be a-z, A-Z, 0-9, or contain underscores and dashes, with a maximum length of 64." + "minLength": 1 }, "description": { - "type": "string", "title": "Description", - "description": "A description of what the function does. The model will use this description when selecting the function and interpreting its parameters." + "description": "A description of what the function does. The model will use this description when selecting the function and interpreting its parameters.", + "type": "string" }, "parameters": { "type": "object", @@ -45775,16 +52047,274 @@ } } }, - "LLMModel": { + "GPTTool": { + "properties": { + "type": { + "type": "string", + "enum": [ + "function" + ], + "const": "function", + "title": "Type", + "description": "The type of tool", + "default": "function" + }, + "function": { + "allOf": [ + { + "$ref": "#/components/schemas/GPTFunctions" + } + ], + "description": "The function the model may call" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "function" + ], + "title": "GPTTool", + "example": { + "function": { + "description": "Get the current weather in a given location", + "name": "get_current_weather", + "parameters": { + "properties": { + "location": { + "description": "The city and state, e.g. San Francisco, CA", + "type": "string" + }, + "unit": { + "enum": [ + "celsius", + "fahrenheit" + ], + "type": "string" + } + }, + "required": [ + "location" + ], + "type": "object" + } + }, + "type": "function" + } + }, + "GPTToolCall": { + "properties": { + "id": { + "title": "Id", + "type": "string" + }, + "function": { + "$ref": "#/components/schemas/GPTFunctionCall" + }, + "type": { + "title": "Type", + "description": "The type of tool", + "default": "function", + "type": "string", + "enum": [ + "function" + ], + "const": "function" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "id", + "function" + ], + "title": "GPTToolCall" + }, + "GraphQLCompletionsRequest": { + "properties": { + "prompt": { + "type": "string", + "maxLength": 2048, + "minLength": 1, + "title": "Prompt", + "description": "The query to generate GraphQL completions for" + }, + "dataModels": { + "title": "Datamodels", + "description": "List of relevant Data models", + "items": { + "$ref": "#/components/schemas/CogAIDataModel" + }, + "type": "array", + "maxItems": 80, + "minItems": 1 + }, + "dataModelType": { + "description": "Relevant data model type from a given data model", + "$ref": "#/components/schemas/DataModelType" + }, + "stream": { + "type": "boolean", + "title": "Stream", + "description": "Whether to stream back partial progress.", + "default": true + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "prompt" + ], + "title": "GraphQLCompletionsRequest" + }, + "LanguageModelKind": { "type": "string", "enum": [ "gpt-35-turbo", "gpt-35-turbo-16k", "gpt-4", "gpt-4-turbo", - "gpt-4-32k" + "gpt-4-32k", + "gpt-4-vision", + "gpt-4o-2024-05-13", + "gpt-4o-mini", + "gemini-1.0-pro", + "gemini-1.5-pro", + "gemini-1.5-flash", + "bedrock/anthropic.claude-3-5-sonnet-20240620-v1:0", + "bedrock/anthropic.claude-3-sonnet-20240229-v1:0", + "bedrock/anthropic.claude-3-haiku-20240307-v1:0", + "bedrock/anthropic.claude-instant-v1", + "bedrock/meta.llama3-8b-instruct-v1:0", + "bedrock/meta.llama3-70b-instruct-v1:0", + "bedrock/mistral.mixtral-8x7b-instruct-v0:1", + "bedrock/mistral.mistral-large-2402-v1:0", + "ollama/llama2", + "ollama/llama2:13b", + "ollama/llama2:70b", + "ollama/llama3", + "ollama/llama3:70b", + "ollama/codellama", + "ollama/codellama:13b", + "ollama/codellama:34b", + "ollama/codellama:70b", + "ollama/mixtral" + ], + "title": "LanguageModelKind" + }, + "DocumentQAAnswerLocation": { + "properties": { + "pageNumber": { + "type": "integer", + "title": "Pagenumber", + "description": "The page number within the file. Page numbers start at 1." + }, + "left": { + "type": "number", + "title": "Left" + }, + "right": { + "type": "number", + "title": "Right" + }, + "top": { + "type": "number", + "title": "Top" + }, + "bottom": { + "type": "number", + "title": "Bottom" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "pageNumber", + "left", + "right", + "top", + "bottom" + ], + "title": "Location" + }, + "DocumentQAAnswerReference": { + "properties": { + "fileId": { + "type": "integer", + "title": "Fileid", + "description": "The id of the file" + }, + "locations": { + "items": { + "$ref": "#/components/schemas/DocumentQAAnswerLocation" + }, + "type": "array", + "title": "Locations", + "description": "The locations in the document that contain the relevant text" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "fileId", + "locations" + ], + "title": "Reference" + }, + "ServiceInfo": { + "properties": { + "name": { + "type": "string", + "title": "Name", + "description": "Service name." + }, + "path": { + "type": "string", + "title": "Path", + "description": "Service path." + }, + "available": { + "type": "boolean", + "title": "Available", + "description": "Whether service is available." + }, + "supportedLanguageModels": { + "items": { + "$ref": "#/components/schemas/LanguageModelKind" + }, + "type": "array", + "title": "Supportedlanguagemodels", + "description": "Available language models", + "default": [ + "default" + ] + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "name", + "path", + "available" + ], + "title": "ServiceInfo" + }, + "ServiceInfoResponse": { + "properties": { + "items": { + "items": { + "$ref": "#/components/schemas/ServiceInfo" + }, + "type": "array", + "title": "Items", + "description": "Service availability information." + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "items" ], - "title": "LLMModel" + "title": "ServiceInfoResponse" }, "StreamChoice": { "properties": { @@ -45797,9 +52327,9 @@ "description": "The incremental changes to the conversation" }, "finishReason": { - "type": "string", "title": "Finishreason", - "description": "The reason the conversation ended" + "description": "The reason the conversation ended", + "type": "string" } }, "additionalProperties": false, @@ -45813,22 +52343,35 @@ "StreamDelta": { "properties": { "content": { - "type": "string", "title": "Content", - "description": "The contents of the message." + "description": "The contents of the message.", + "type": "string" }, "role": { - "$ref": "#/components/schemas/ChatMessageRole", - "description": "The role of the author of this message." + "description": "The role of the author of this message.", + "$ref": "#/components/schemas/ChatMessageRole" }, "name": { - "type": "string", "title": "Name", - "description": "The name of a function in a function call." + "description": "The name of a function in a function call.", + "type": "string" }, "functionCall": { - "$ref": "#/components/schemas/GPTFunctionCall", - "description": "The name and arguments of a function that should be called, as generated by the model." + "description": "The name and arguments of a function that should be called, as generated by the model.", + "$ref": "#/components/schemas/GPTFunctionCall" + }, + "toolCalls": { + "title": "Toolcalls", + "description": "The tools to be called", + "items": { + "$ref": "#/components/schemas/GPTToolCall" + }, + "type": "array" + }, + "toolCallId": { + "title": "Toolcallid", + "description": "The ID of the tool to be called", + "type": "string" } }, "additionalProperties": false, @@ -45888,6 +52431,45 @@ } ] }, + "DocumentSemanticSearchRequest": { + "allOf": [ + { + "$ref": "#/components/schemas/DocumentSemanticSearchFilter" + }, + { + "$ref": "#/components/schemas/DocumentSemanticSearchPassageExpansion" + }, + { + "$ref": "#/components/schemas/DocumentSemanticSearchLimit" + } + ] + }, + "DocumentStatusRequest": { + "required": [ + "items" + ], + "description": "List of document ids to check the status for.", + "properties": { + "items": { + "type": "array", + "items": { + "required": [ + "id" + ], + "properties": { + "id": { + "$ref": "#/components/schemas/CogniteInternalId" + } + } + } + }, + "includeStatistics": { + "type": "boolean", + "description": "Whether or not to include statistics about the document. This gives additional insight such as the number of pages, number of vectors, etc.", + "default": false + } + } + }, "DocumentListRequest": { "allOf": [ { @@ -45913,6 +52495,30 @@ } } }, + "DocumentSemanticSearchFilter": { + "description": "Narrow down search results. You must specify exactly one `semanticSearch` filter.", + "type": "object", + "required": [ + "filter" + ], + "properties": { + "filter": { + "$ref": "#/components/schemas/DocumentSemanticFilter" + } + } + }, + "DocumentSemanticSearchVectorspace": { + "description": "Limit search to namespace", + "type": "object", + "required": [ + "namespace" + ], + "properties": { + "namespace": { + "type": "string" + } + } + }, "DocumentListFilter": { "description": "Filter with exact match", "type": "object", @@ -45935,6 +52541,58 @@ } } }, + "DocumentSemanticSearchPassageExpansionSymmetric": { + "type": "object", + "required": [ + "strategy", + "chunk_count" + ], + "properties": { + "strategy": { + "description": "Expand the passage with adjacent passages that exists before and after a passage.", + "type": "string", + "enum": [ + "symmetric" + ], + "default": "symmetric" + }, + "chunk_count": { + "description": "Number of passages to expand a given passage by", + "type": "integer", + "minimum": 1, + "maximum": 4 + } + } + }, + "DocumentSemanticSearchPassageExpansion": { + "type": "object", + "required": [ + "expansionStrategy" + ], + "properties": { + "expansionStrategy": { + "description": "A expansion strategy to to increase the text view for each passage returned. Helpful to increase context for an LLM.", + "oneOf": [ + { + "$ref": "#/components/schemas/DocumentSemanticSearchPassageExpansionSymmetric" + } + ] + } + } + }, + "DocumentSemanticSearchLimit": { + "type": "object", + "properties": { + "limit": { + "description": "Maximum number of items.", + "type": "integer", + "format": "int32", + "minimum": 1, + "maximum": 10, + "default": 10 + } + } + }, "DocumentListLimit": { "type": "object", "properties": { @@ -46057,6 +52715,98 @@ } } }, + "DocumentSemanticSearchItem": { + "type": "object", + "required": [ + "item", + "match" + ], + "description": "Each item contains the semantic match and the relevant document it belongs to.", + "properties": { + "match": { + "$ref": "#/components/schemas/DocumentSemanticMatch" + }, + "item": { + "$ref": "#/components/schemas/Document" + } + } + }, + "DocumentStatusItem": { + "type": "object", + "required": [ + "id", + "semanticSearch", + "elements" + ], + "description": "Each item contains the semantic match and the relevant document it belongs to.", + "properties": { + "id": { + "$ref": "#/components/schemas/CogniteInternalId" + }, + "semanticSearch": { + "type": "object", + "required": [ + "status" + ], + "description": "Status of the document in the semantic search system.", + "properties": { + "status": { + "type": "string", + "enum": [ + "waiting", + "ignored", + "error", + "indexed", + "progress" + ], + "description": "The status of the document in the semantic search index. File is searchable when the status is `indexed`." + }, + "reason": { + "type": "string", + "description": "Provides additional insight for an error status." + } + } + }, + "elements": { + "type": "object", + "required": [ + "status" + ], + "description": "Status of the document layout analysis.", + "properties": { + "status": { + "type": "string", + "enum": [ + "waiting", + "ignored", + "error", + "indexed", + "progress" + ], + "description": "The status of the document for layout analysis. Document elements is retrievable when the status is `indexed`." + }, + "reason": { + "type": "string", + "description": "Provides additional insight for an error status." + } + } + }, + "statistics": { + "type": "object", + "description": "Statistics about the document. This is only available when setting `includeStatistics` to `true` in the request.", + "properties": { + "numberOfPages": { + "type": "integer", + "description": "The number of pages in the document. This is only available for documents that have been indexed." + }, + "numberOfVectors": { + "type": "integer", + "description": "The number of vectors (passages) in the document. This is only available for documents that have been indexed." + } + } + } + } + }, "DocumentSearchAggregate": { "type": "object", "required": [ @@ -46471,6 +53221,58 @@ ] } }, + "DocumentSemanticMatch": { + "type": "object", + "description": "Semantic insight about a search result", + "required": [ + "text" + ], + "properties": { + "text": { + "type": "string" + }, + "locations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "pageNumber": { + "type": "number", + "format": "int32" + }, + "left": { + "type": "number", + "format": "float" + }, + "right": { + "type": "number", + "format": "float" + }, + "up": { + "type": "number", + "format": "float" + }, + "bottom": { + "type": "number", + "format": "float" + } + } + } + } + }, + "example": { + "text": "Pump installation\nFollow these 15 steps:\n ...", + "location": [ + { + "page": 7, + "left": 68.78, + "right": 478.56, + "top": 75.04, + "bottom": 386.1 + } + ] + } + }, "DocumentGeoJsonGeometry": { "description": "GeoJSON Geometry.", "type": "object", @@ -46550,6 +53352,18 @@ } ] }, + "DocumentSemanticFilter": { + "description": "A JSON based filtering language. See detailed documentation above.\n", + "type": "object", + "oneOf": [ + { + "$ref": "#/components/schemas/DocumentSemanticFilterBool" + }, + { + "$ref": "#/components/schemas/DocumentSemanticFilterLeaf" + } + ] + }, "DocumentFilterBool": { "title": "bool filters", "description": "A query that matches items matching boolean combinations of other queries.\nIt is built using one or more boolean clauses, which can be of types: `and`, `or` or `not`\n", @@ -46656,6 +53470,48 @@ } ] }, + "DocumentSemanticFilterBool": { + "title": "bool filters", + "description": "A query that matches items matching boolean combinations of other queries.\nCurrently only supports `and` clause.\n", + "type": "object", + "oneOf": [ + { + "type": "object", + "title": "and", + "required": [ + "and" + ], + "properties": { + "and": { + "description": "All of the sub-clauses in the query must appear in matching items.", + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/DocumentSemanticFilter" + }, + "example": [ + { + "prefix": { + "property": [ + "name" + ], + "value": "Report" + } + }, + { + "equals": { + "property": [ + "type" + ], + "value": "PDF" + } + } + ] + } + } + } + ] + }, "DocumentFilterLeaf": { "title": "leaf filters", "description": "Leaf filter", @@ -46699,6 +53555,25 @@ } ] }, + "DocumentSemanticFilterLeaf": { + "title": "leaf filters", + "description": "Leaf filter", + "type": "object", + "oneOf": [ + { + "$ref": "#/components/schemas/DocumentPassagesFilterEquals" + }, + { + "$ref": "#/components/schemas/DocumentPassagesFilterIn" + }, + { + "$ref": "#/components/schemas/DocumentFilterSemanticSearch" + }, + { + "$ref": "#/components/schemas/DocumentFilterLexicalSearch" + } + ] + }, "DocumentFilterEquals": { "type": "object", "title": "equals", @@ -46934,6 +53809,153 @@ } } }, + "DocumentPassagesFilterValue": { + "description": "Value you wish to find in the provided property.", + "oneOf": [ + { + "type": "string" + }, + { + "type": "number" + } + ] + }, + "DocumentPassagesFilterValueList": { + "description": "One or more values you wish to find in the provided property.", + "type": "array", + "minItems": 1, + "maxItems": 100, + "items": { + "$ref": "#/components/schemas/DocumentPassagesFilterValue" + } + }, + "DocumentPassagesFilterEquals": { + "type": "object", + "title": "equals", + "required": [ + "equals" + ], + "properties": { + "equals": { + "required": [ + "property", + "value" + ], + "description": "Matches items that contain the exact value in the provided property.", + "type": "object", + "properties": { + "property": { + "$ref": "#/components/schemas/DocumentFilterProperty" + }, + "value": { + "$ref": "#/components/schemas/DocumentPassagesFilterValue" + } + }, + "example": { + "property": [ + "type" + ], + "value": "PDF" + } + } + } + }, + "DocumentPassagesFilterIn": { + "type": "object", + "title": "in", + "required": [ + "in" + ], + "properties": { + "in": { + "required": [ + "property", + "values" + ], + "description": "Matches items where the property matches one of the given values", + "type": "object", + "properties": { + "property": { + "$ref": "#/components/schemas/DocumentFilterProperty" + }, + "values": { + "$ref": "#/components/schemas/DocumentPassagesFilterValueList" + } + }, + "example": { + "property": [ + "id" + ], + "values": [ + 6546, + 45756456 + ] + } + } + } + }, + "DocumentFilterSemanticSearch": { + "type": "object", + "title": "semanticSearch", + "required": [ + "semanticSearch" + ], + "properties": { + "semanticSearch": { + "required": [ + "property", + "value" + ], + "description": "Matches passages that have similar semantic meaning as the search query.", + "type": "object", + "properties": { + "property": { + "$ref": "#/components/schemas/DocumentFilterProperty" + }, + "value": { + "type": "string" + } + }, + "example": { + "property": [ + "content" + ], + "value": "Report" + } + } + } + }, + "DocumentFilterLexicalSearch": { + "type": "object", + "title": "lexicalSearch", + "required": [ + "lexicalSearch" + ], + "properties": { + "lexicalSearch": { + "required": [ + "property", + "value" + ], + "description": "Matches passages that contains specified keywords.", + "type": "object", + "properties": { + "property": { + "$ref": "#/components/schemas/DocumentFilterProperty" + }, + "value": { + "type": "string" + } + }, + "example": { + "property": [ + "content" + ], + "value": "Report" + } + } + } + }, "DocumentFilterExists": { "type": "object", "title": "exists", @@ -47994,6 +55016,250 @@ } } }, + "DocumentElement": { + "type": "object", + "description": "A single document layout element. Can be a title, a paragraph or a table.", + "oneOf": [ + { + "$ref": "#/components/schemas/DocumentTitleElement" + }, + { + "$ref": "#/components/schemas/DocumentParagraphElement" + }, + { + "$ref": "#/components/schemas/DocumentListElement" + }, + { + "$ref": "#/components/schemas/DocumentTableOfContentsElement" + }, + { + "$ref": "#/components/schemas/DocumentTableElement" + } + ] + }, + "DocumentTitleElement": { + "type": "object", + "description": "A title in a document. A title can consist of one or more lines of text.", + "required": [ + "type", + "lines" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "title" + ] + }, + "level": { + "type": "number", + "description": "The level of this header, from 1 to 3, where smaller numbers mean larger headers.", + "minimum": 1, + "maximum": 3 + }, + "lines": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/DocumentLineElement" + } + } + } + }, + "DocumentParagraphElement": { + "type": "object", + "description": "A paragraph in a document. A paragraph can consist of one or more lines of text.", + "required": [ + "type", + "lines" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "paragraph" + ] + }, + "lines": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/DocumentLineElement" + } + } + } + }, + "DocumentListElement": { + "type": "object", + "description": "An ordered or unordered list.", + "required": [ + "type", + "lines" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "list" + ] + }, + "lines": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/DocumentLineElement" + } + } + } + }, + "DocumentTableOfContentsElement": { + "type": "object", + "description": "A table of contents.", + "required": [ + "type", + "lines" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "toc" + ] + }, + "lines": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/DocumentLineElement" + } + } + } + }, + "DocumentTableElement": { + "type": "object", + "description": "A table in a document. A table consists of a list of rows where each row is a list of\ncells.", + "required": [ + "type", + "rows" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "table" + ] + }, + "columnHeaderCount": { + "type": "number", + "description": "Number of header rows (column headers) at the top of the table." + }, + "rowHeaderCount": { + "type": "number", + "description": "Number of header columns (row headers) at the left of the table." + }, + "rows": { + "type": "array", + "minItems": 1, + "items": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/DocumentCellElement" + } + } + } + } + }, + "DocumentCellElement": { + "type": "object", + "description": "A cell in a table. A cell contains zero or more lines of text.", + "required": [ + "lines" + ], + "properties": { + "lines": { + "type": "array", + "minItems": 0, + "items": { + "$ref": "#/components/schemas/DocumentLineElement" + } + } + } + }, + "DocumentLineElement": { + "type": "object", + "description": "A single line containing a list of words", + "required": [ + "words" + ], + "properties": { + "words": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/DocumentWordElement" + } + } + } + }, + "DocumentWordElement": { + "type": "object", + "description": "A single word containing a list of characters", + "required": [ + "characters" + ], + "properties": { + "characters": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/components/schemas/DocumentCharacterElement" + } + } + } + }, + "DocumentCharacterElement": { + "type": "object", + "description": "A character. Contains a reference to the relevant page, and a bounding box.", + "required": [ + "text", + "page", + "left", + "right", + "top", + "bottom" + ], + "properties": { + "text": { + "description": "The text representing the character. This is usually one character long, but may be more\nin some cases, for instance where there are ligatures in the document.", + "type": "string" + }, + "page": { + "description": "The page number where the character can be found. Pages start at 1.", + "type": "integer" + }, + "left": { + "type": "number" + }, + "right": { + "type": "number" + }, + "top": { + "type": "number" + }, + "bottom": { + "type": "number" + } + }, + "example": { + "title": "Pump installation", + "page": 7, + "left": 68.78, + "right": 178.56, + "top": 75.04, + "bottom": 96.1 + } + }, "GeospatialError": { "type": "object", "required": [ @@ -48170,7 +55436,7 @@ }, "properties": { "type": "object", - "description": "Each property name has to match the following regexp pattern `/^[A-Za-z][A-Za-z0-9_]{0,31}$/`. The number of properties is limited to 200 per feature type.", + "description": "Each property name has to match the following regexp pattern `/^[A-Za-z][A-Za-z0-9_]{0,31}$/`.\\ The number of properties is limited to 200 per feature type.", "additionalProperties": { "$ref": "#/components/schemas/GeospatialFeatureTypeProperty" }, @@ -48178,7 +55444,7 @@ }, "searchSpec": { "type": "object", - "description": "Each index name has to match the following regexp pattern `/^[A-Za-z][A-Za-z0-9_]{0,31}$/`. The number of indexes is limited to 10 per feature type.", + "description": "Each index name has to match the following regexp pattern `/^[A-Za-z][A-Za-z0-9_]{0,31}$/`.\\ The number of indexes is limited to 10 per feature type.", "additionalProperties": { "$ref": "#/components/schemas/GeospatialIndexSpec" }, @@ -48226,7 +55492,7 @@ }, "properties": { "type": "object", - "description": "List of properties to be added, deleted or modified in an existing feature type. Each property name has to match the following regexp pattern `/^[A-Za-z][A-Za-z0-9_]{0,31}$/`. The total number of properties is limited to 100 per feature type. There must not be any property name overlap in `add`, `remove` and `modify` fields.", + "description": "List of properties to be added, deleted or modified in an existing feature type. Each property name has to match the following regexp pattern `/^[A-Za-z][A-Za-z0-9_]{0,31}$/`.\\ The total number of properties is limited to 100 per feature type. There must not be any property name overlap in `add`, `remove` and `modify` fields.", "properties": { "add": { "type": "object", @@ -48245,7 +55511,7 @@ }, "searchSpec": { "type": "object", - "description": "Each index name has to match the following regexp pattern `/^[A-Za-z][A-Za-z0-9_]{0,31}$/`. The total number of indexes is limited to 5 per feature type.", + "description": "Each index name has to match the following regexp pattern `/^[A-Za-z][A-Za-z0-9_]{0,31}$/`.\\ The total number of indexes is limited to 5 per feature type.", "properties": { "add": { "type": "object", @@ -49089,7 +56355,7 @@ }, "sort": { "type": "array", - "description": "Sort result by selected fields. Syntax: sort:[\"field_1\",\"field_2:ASC\",\"field_3:DESC\"]. Default sort order is ascending if not specified. Available sort direction: ASC, DESC, ASC_NULLS_FIRST, DESC_NULLS_FIRST, ASC_NULLS_LAST, DESC_NULLS_LAST.\n", + "description": "Sort result by selected fields. Syntax: sort:[\"field_1\",\"field_2:ASC\",\"field_3:DESC\"]. Default sort order is ascending if not specified. Available sort direction: ASC, DESC, ASC_NULLS_FIRST, DESC_NULLS_FIRST, ASC_NULLS_LAST, DESC_NULLS_LAST.\n", "items": { "type": "string" } @@ -51100,13 +58366,265 @@ { "$ref": "#/components/schemas/ExtPipeUpdateByExternalId" } - ] + ] + }, + "ExtPipesFilterRequest": { + "type": "object", + "properties": { + "filter": { + "$ref": "#/components/schemas/ExtPipesFilter" + }, + "limit": { + "maximum": 1000, + "minimum": 1, + "type": "integer", + "description": "Limits the number of results to return.", + "format": "int32", + "default": 100 + }, + "cursor": { + "type": "string" + } + } + }, + "ExtPipesFilter": { + "type": "object", + "properties": { + "externalIdPrefix": { + "maxLength": 255, + "minLength": 1, + "type": "string", + "description": "Filter by this (case-sensitive) prefix for the external ID." + }, + "name": { + "maxLength": 140, + "minLength": 1, + "type": "string", + "description": "Name of Extraction Pipeline" + }, + "description": { + "maxLength": 500, + "type": "string", + "description": "Description of Extraction Pipeline" + }, + "dataSetIds": { + "maxItems": 100, + "minItems": 1, + "type": "array", + "description": "DataSetId list", + "items": { + "$ref": "#/components/schemas/DataSetIdEither" + } + }, + "schedule": { + "pattern": "^(On trigger|Continuous|Null)|(@(annually|yearly|monthly|weekly|daily|hourly|reboot))|(@every (\\d+(ns|us|µs|ms|s|m|h))+)|((((\\d+,)+\\d+|(\\d+([/\\-])\\d+)|\\d+|\\*(/\\d+)?) ?){5,7})$", + "type": "string", + "description": "Possible values: “On trigger”, “Continuous” or cron expression. If empty then “Null“" + }, + "contacts": { + "type": "array", + "description": "Contacts list.", + "items": { + "$ref": "#/components/schemas/Contact" + } + }, + "rawTables": { + "type": "array", + "description": "Raw tables", + "items": { + "$ref": "#/components/schemas/RawTable" + } + }, + "metadata": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Custom, application specific metadata. String key -> String value. Limits: Key are at most 128 bytes. Values are at most 10240 bytes. Up to 256 key-value pairs. Total size is at most 10240.", + "example": { + "property1": "string", + "property2": "string" + } + }, + "source": { + "maxLength": 255, + "minLength": 1, + "type": "string", + "description": "Source for Extraction Pipeline" + }, + "documentation": { + "maxLength": 10000, + "minLength": 1, + "type": "string", + "description": "Documentation text field" + }, + "createdBy": { + "maxLength": 255, + "minLength": 1, + "type": "string", + "description": "Extraction Pipeline creator. Usually user email is expected here" + }, + "createdTime": { + "$ref": "#/components/schemas/EpochTimestampRange" + }, + "lastUpdatedTime": { + "$ref": "#/components/schemas/EpochTimestampRange" + } + } + }, + "ConfigResponse": { + "required": [ + "externalId", + "revision" + ], + "type": "object", + "properties": { + "externalId": { + "maxLength": 255, + "minLength": 1, + "required": [ + "true" + ], + "type": "string", + "description": "External ID of the extraction pipeline this configuration revision belongs to." + }, + "config": { + "type": "string", + "description": "Configuration revision contents." + }, + "revision": { + "maximum": 2147483647, + "minimum": 0, + "type": "integer", + "description": "Revision number of this configuration.", + "format": "int32" + }, + "createdTime": { + "$ref": "#/components/schemas/EpochTimestamp" + }, + "description": { + "type": "string", + "description": "A description of this config revision.", + "nullable": true + } + } + }, + "CreateConfigRequest": { + "required": [ + "externalId" + ], + "type": "object", + "properties": { + "externalId": { + "maxLength": 255, + "minLength": 1, + "required": [ + "true" + ], + "type": "string", + "description": "External ID of the extraction pipeline this configuration revision belongs to." + }, + "config": { + "type": "string", + "description": "Configuration content." + }, + "description": { + "type": "string", + "description": "A description of this configuration revision.", + "nullable": true + } + } + }, + "RevertConfigRequest": { + "required": [ + "externalId" + ], + "type": "object", + "properties": { + "externalId": { + "maxLength": 255, + "minLength": 1, + "required": [ + "true" + ], + "type": "string", + "description": "External ID of the extraction pipeline to revert configurations for." + }, + "revision": { + "maximum": 2147483647, + "minimum": 0, + "type": "integer", + "description": "Revision number of this configuration.", + "format": "int32" + } + } + }, + "ItemsRequest_ExtPipeRunRequest_": { + "required": [ + "items" + ], + "type": "object", + "properties": { + "items": { + "maxItems": 1000, + "minItems": 1, + "type": "array", + "items": { + "$ref": "#/components/schemas/ExtPipeRunRequest" + } + } + } + }, + "ExtPipeRunStatus": { + "type": "string", + "enum": [ + "success", + "failure", + "seen" + ] + }, + "ExtPipeRunRequest": { + "required": [ + "externalId", + "status" + ], + "type": "object", + "properties": { + "externalId": { + "maxLength": 255, + "minLength": 1, + "required": [ + "true" + ], + "type": "string", + "description": "Extraction pipeline external Id provided by client. Should be unique within the project." + }, + "status": { + "$ref": "#/components/schemas/ExtPipeRunStatus" + }, + "message": { + "maxLength": 1000, + "type": "string", + "description": "Error message.", + "nullable": true + }, + "createdTime": { + "type": "integer", + "description": "The number of milliseconds since 00:00:00 Thursday, 1 January 1970, Coordinated Universal Time (UTC), minus leap seconds.", + "format": "int64", + "nullable": true + } + }, + "description": "Status of the extraction pipeline." }, - "ExtPipesFilterRequest": { + "RunsFilterRequest": { + "required": [ + "filter" + ], "type": "object", "properties": { "filter": { - "$ref": "#/components/schemas/ExtPipesFilter" + "$ref": "#/components/schemas/RunsFilter" }, "limit": { "maximum": 1000, @@ -51121,92 +58639,121 @@ } } }, - "ExtPipesFilter": { + "RunsFilter": { + "required": [ + "externalId" + ], "type": "object", "properties": { - "externalIdPrefix": { + "externalId": { "maxLength": 255, "minLength": 1, + "required": [ + "true" + ], "type": "string", - "description": "Filter by this (case-sensitive) prefix for the external ID." - }, - "name": { - "maxLength": 140, - "minLength": 1, - "type": "string", - "description": "Name of Extraction Pipeline" - }, - "description": { - "maxLength": 500, - "type": "string", - "description": "Description of Extraction Pipeline" - }, - "dataSetIds": { - "maxItems": 100, - "minItems": 1, - "type": "array", - "description": "DataSetId list", - "items": { - "$ref": "#/components/schemas/DataSetIdEither" - } - }, - "schedule": { - "pattern": "^(On trigger|Continuous|Null)|(@(annually|yearly|monthly|weekly|daily|hourly|reboot))|(@every (\\d+(ns|us|µs|ms|s|m|h))+)|((((\\d+,)+\\d+|(\\d+([/\\-])\\d+)|\\d+|\\*(/\\d+)?) ?){5,7})$", - "type": "string", - "description": "Possible values: “On trigger”, “Continuous” or cron expression. If empty then “Null“" - }, - "contacts": { - "type": "array", - "description": "Contacts list.", - "items": { - "$ref": "#/components/schemas/Contact" - } + "description": "Extraction pipeline external Id provided by client." }, - "rawTables": { + "statuses": { "type": "array", - "description": "Raw tables", + "description": "Extraction pipeline statuses list. Expected values: success, failure, seen.", "items": { - "$ref": "#/components/schemas/RawTable" + "$ref": "#/components/schemas/ExtPipeRunStatus" } }, - "metadata": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Custom, application specific metadata. String key -> String value. Limits: Key are at most 128 bytes. Values are at most 10240 bytes. Up to 256 key-value pairs. Total size is at most 10240.", - "example": { - "property1": "string", - "property2": "string" - } + "createdTime": { + "$ref": "#/components/schemas/EpochTimestampRange" }, - "source": { - "maxLength": 255, - "minLength": 1, + "message": { + "$ref": "#/components/schemas/StringFilter" + } + } + }, + "StringFilter": { + "type": "object", + "properties": { + "substring": { "type": "string", - "description": "Source for Extraction Pipeline" + "description": "Substring to find strings, that contains it ignoring case." + } + } + }, + "ExtPipeRunResponse": { + "required": [ + "status" + ], + "type": "object", + "properties": { + "id": { + "maximum": 9007199254740991, + "minimum": 1, + "type": "integer", + "description": "A server-generated ID for the object.", + "format": "int64" }, - "documentation": { - "maxLength": 10000, + "status": { "minLength": 1, + "required": [ + "true" + ], "type": "string", - "description": "Documentation text field" + "description": "Extraction Pipeline status." }, - "createdBy": { - "maxLength": 255, - "minLength": 1, + "message": { "type": "string", - "description": "Extraction Pipeline creator. Usually user email is expected here" + "description": "Error message." }, "createdTime": { - "$ref": "#/components/schemas/EpochTimestampRange" + "$ref": "#/components/schemas/EpochTimestamp" + } + }, + "description": "Extraction Pipeline Run. Contains extraction pipeline status and message for a moment of time" + }, + "ItemsResponse_ExtPipeRunResponse_": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ExtPipeRunResponse" + } }, - "lastUpdatedTime": { - "$ref": "#/components/schemas/EpochTimestampRange" + "nextCursor": { + "type": "string", + "description": "The cursor to get the next page of results (if available)." + } + }, + "description": "Response with a list of elements." + }, + "CreateExtPipeRunResponse": { + "allOf": [ + { + "$ref": "#/components/schemas/ExtPipeRunResponse" + }, + { + "type": "object", + "properties": { + "externalId": { + "type": "string", + "description": "Extraction Pipeline external Id." + } + }, + "description": "Create Extraction Pipeline Runs response." + } + ] + }, + "ItemsResponse_CreateExtPipeRunResponse_": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CreateExtPipeRunResponse" + } } } }, - "ConfigResponse": { + "ListConfigResponse": { "required": [ "externalId", "revision" @@ -51222,10 +58769,6 @@ "type": "string", "description": "External ID of the extraction pipeline this configuration revision belongs to." }, - "config": { - "type": "string", - "description": "Configuration revision contents." - }, "revision": { "maximum": 2147483647, "minimum": 0, @@ -51238,885 +58781,1396 @@ }, "description": { "type": "string", - "description": "A description of this config revision.", + "description": "A description of this configuration revision.", "nullable": true } } }, - "CreateConfigRequest": { + "ItemsResponse_ListConfigResponse_": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ListConfigResponse" + } + } + } + }, + "CogniteExtId": { "required": [ "externalId" ], "type": "object", "properties": { "externalId": { - "maxLength": 255, - "minLength": 1, - "required": [ - "true" - ], + "type": "string" + } + }, + "description": "The external ID provided by the client. Must be unique for the resource type." + }, + "CogniteIntId": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + } + }, + "description": "A server-generated ID for the object." + }, + "ColumnType": { + "required": [ + "name", + "sqlType", + "type", + "nullable" + ], + "type": "object", + "properties": { + "name": { "type": "string", - "description": "External ID of the extraction pipeline this configuration revision belongs to." + "description": "Column name." }, - "config": { + "sqlType": { "type": "string", - "description": "Configuration content." + "description": "Type of the column in sql format." }, - "description": { + "type": { + "description": "Type of the column in json format.", + "oneOf": [ + { + "required": [ + "type" + ], + "type": "object", + "properties": { + "type": { + "type": "string" + } + } + }, + { + "type": "string" + } + ] + }, + "nullable": { + "type": "boolean", + "description": "Values for the column can be null or not." + } + }, + "description": "Details of a column in a given schema." + }, + "ConflictMode": { + "type": "string", + "description": "Behavior when the data already exists.`upsert` - Create or Update,`abort` - Create and fail when already exists,`update` - update and fail if it does not exist,`delete` - delete the matched rows.", + "enum": [ + "abort", + "delete", + "update", + "upsert" + ] + }, + "ContainsAny": { + "type": "object", + "properties": { + "containsAny": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Filter the transformations having any of these tags." + } + } + }, + "AssetCentricDataSource": { + "required": [ + "type" + ], + "type": "object", + "properties": { + "type": { "type": "string", - "description": "A description of this configuration revision.", - "nullable": true + "description": "The type of the destination resource.", + "enum": [ + "assets", + "events", + "asset_hierarchy", + "datapoints", + "string_datapoints", + "timeseries", + "sequences", + "files", + "labels", + "relationships", + "data_sets" + ] } } }, - "RevertConfigRequest": { + "EdgeType": { "required": [ + "space", "externalId" ], "type": "object", "properties": { + "space": { + "type": "string", + "description": "Space of the type" + }, "externalId": { - "maxLength": 255, - "minLength": 1, - "required": [ - "true" - ], "type": "string", - "description": "External ID of the extraction pipeline to revert configurations for." + "description": "External ID of the type" + } + }, + "description": "Target type of the connection definition" + }, + "FlatOidcCredentials": { + "required": [ + "clientId", + "clientSecret", + "tokenUri", + "cdfProjectName" + ], + "type": "object", + "properties": { + "clientId": { + "type": "string" }, - "revision": { - "maximum": 2147483647, - "minimum": 0, - "type": "integer", - "description": "Revision number of this configuration.", - "format": "int32" + "clientSecret": { + "type": "string" + }, + "scopes": { + "type": "string" + }, + "tokenUri": { + "type": "string" + }, + "cdfProjectName": { + "type": "string" + }, + "audience": { + "type": "string" + } + } + }, + "FlatOidcCredentialsUpdate": { + "type": "object", + "properties": { + "clientId": { + "type": "string" + }, + "clientSecret": { + "type": "string" + }, + "scopes": { + "type": "string" + }, + "tokenUri": { + "type": "string" + }, + "cdfProjectName": { + "type": "string" + }, + "audience": { + "type": "string" + } + } + }, + "ViewDataSource": { + "required": [ + "type" + ], + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "The type of the destination resource indicating the instance type that the transformation will write to flexible data models.", + "enum": [ + "nodes", + "edges" + ] + }, + "view": { + "$ref": "#/components/schemas/ViewInfo" + }, + "edgeType": { + "$ref": "#/components/schemas/EdgeType" + }, + "instanceSpace": { + "type": "string", + "description": "The space where the instances(nodes/edges) will be created." + } + } + }, + "DataModelSource": { + "required": [ + "type", + "dataModel" + ], + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "The type of the destination resource indicating that the transformation will write to data models", + "enum": [ + "instances" + ] + }, + "dataModel": { + "$ref": "#/components/schemas/DataModelInfo" + }, + "instanceSpace": { + "type": "string", + "description": "The space where the instances will be created." + } + } + }, + "ItemsWithByIdsFlags_CogniteId": { + "required": [ + "withJobDetails" + ], + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/TransformationCogniteExternalId" + }, + { + "$ref": "#/components/schemas/TransformationCogniteInternalId" + } + ] + }, + "maxItems": 1000 + }, + "ignoreUnknownIds": { + "type": "boolean", + "description": "Ignore IDs and external IDs that are not found. Defaults to false." + }, + "withJobDetails": { + "type": "boolean", + "description": "Whether the transformations will be returned with running job and last created job details." + } + }, + "description": "All provided IDs and external IDs must be unique." + }, + "ItemsWithCursor_JobRead": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JobRead" + } + }, + "nextCursor": { + "type": "string", + "description": "Cursor to get the next page of results (if available)." + } + } + }, + "ItemsWithCursor_NotificationRead": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NotificationRead" + } + }, + "nextCursor": { + "type": "string", + "description": "Cursor to get the next page of results (if available)." + } + } + }, + "ItemsWithCursor_Schedule": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Schedule" + } + }, + "nextCursor": { + "type": "string", + "description": "Cursor to get the next page of results (if available)." } } }, - "ItemsRequest_ExtPipeRunRequest_": { - "required": [ - "items" - ], + "ItemsWithCursor_TransformationRead": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TransformationRead" + } + }, + "nextCursor": { + "type": "string", + "description": "Cursor to get the next page of results (if available)." + } + }, + "description": "Array of objects (Transformation)." + }, + "ItemsWithIgnoreUnknownIds_CogniteId": { "type": "object", "properties": { "items": { - "maxItems": 1000, - "minItems": 1, "type": "array", "items": { - "$ref": "#/components/schemas/ExtPipeRunRequest" - } + "oneOf": [ + { + "$ref": "#/components/schemas/TransformationCogniteExternalId" + }, + { + "$ref": "#/components/schemas/TransformationCogniteInternalId" + } + ] + }, + "maxItems": 1000 + }, + "ignoreUnknownIds": { + "type": "boolean", + "description": "Ignore IDs and external IDs that are not found. Defaults to false." } - } - }, - "ExtPipeRunStatus": { - "type": "string", - "enum": [ - "success", - "failure", - "seen" - ] + }, + "description": "All provided IDs and external IDs must be unique." }, - "ExtPipeRunRequest": { - "required": [ - "externalId", - "status" - ], + "ItemsWithIgnoreUnknownIds_CogniteInternalId": { "type": "object", "properties": { - "externalId": { - "maxLength": 255, - "minLength": 1, - "required": [ - "true" - ], - "type": "string", - "description": "Extraction pipeline external Id provided by client. Should be unique within the project." - }, - "status": { - "$ref": "#/components/schemas/ExtPipeRunStatus" - }, - "message": { - "maxLength": 1000, - "type": "string", - "description": "Error message.", - "nullable": true + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TransformationCogniteInternalId" + } }, - "createdTime": { - "type": "integer", - "description": "The number of milliseconds since 00:00:00 Thursday, 1 January 1970, Coordinated Universal Time (UTC), minus leap seconds.", - "format": "int64", - "nullable": true + "ignoreUnknownIds": { + "type": "boolean", + "description": "Ignore IDs and external IDs that are not found. Defaults to false." } }, - "description": "Status of the extraction pipeline." + "description": "All provided IDs and external IDs must be unique." }, - "RunsFilterRequest": { - "required": [ - "filter" - ], + "Items_CogniteInternalId": { "type": "object", "properties": { - "filter": { - "$ref": "#/components/schemas/RunsFilter" - }, - "limit": { - "maximum": 1000, - "minimum": 1, - "type": "integer", - "description": "Limits the number of results to return.", - "format": "int32", - "default": 100 - }, - "cursor": { - "type": "string" + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TransformationCogniteInternalId" + } } } }, - "RunsFilter": { - "required": [ - "externalId" - ], + "Items_ColumnType": { "type": "object", "properties": { - "externalId": { - "maxLength": 255, - "minLength": 1, - "required": [ - "true" - ], - "type": "string", - "description": "Extraction pipeline external Id provided by client." - }, - "statuses": { + "items": { "type": "array", - "description": "Extraction pipeline statuses list. Expected values: success, failure, seen.", "items": { - "$ref": "#/components/schemas/ExtPipeRunStatus" + "$ref": "#/components/schemas/ColumnType" } - }, - "createdTime": { - "$ref": "#/components/schemas/EpochTimestampRange" - }, - "message": { - "$ref": "#/components/schemas/StringFilter" } } }, - "StringFilter": { + "Items_JobRead": { "type": "object", "properties": { - "substring": { - "type": "string", - "description": "Substring to find strings, that contains it ignoring case." + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JobRead" + } } } }, - "ExtPipeRunResponse": { - "required": [ - "status" - ], + "Items_JsonObject": { "type": "object", "properties": { - "id": { - "maximum": 9007199254740991, - "minimum": 1, - "type": "integer", - "description": "A server-generated ID for the object.", - "format": "int64" - }, - "status": { - "minLength": 1, - "required": [ - "true" - ], - "type": "string", - "description": "Extraction Pipeline status." - }, - "message": { - "type": "string", - "description": "Error message." - }, - "createdTime": { - "$ref": "#/components/schemas/EpochTimestamp" + "items": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } } }, - "description": "Extraction Pipeline Run. Contains extraction pipeline status and message for a moment of time" + "description": "Query result in json format." }, - "ItemsResponse_ExtPipeRunResponse_": { + "Items_MetricCounter": { "type": "object", "properties": { "items": { "type": "array", "items": { - "$ref": "#/components/schemas/ExtPipeRunResponse" + "$ref": "#/components/schemas/MetricCounter" } - }, - "nextCursor": { - "type": "string", - "description": "The cursor to get the next page of results (if available)." } - }, - "description": "Response with a list of elements." + } }, - "CreateExtPipeRunResponse": { - "allOf": [ - { - "$ref": "#/components/schemas/ExtPipeRunResponse" - }, - { - "type": "object", - "properties": { - "externalId": { - "type": "string", - "description": "Extraction Pipeline external Id." - } + "Items_NotificationCreate": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/NotificationCreateWithExternalId" + }, + { + "$ref": "#/components/schemas/NotificationCreateWithId" + } + ] }, - "description": "Create Extraction Pipeline Runs response." + "maxItems": 1000 } - ] + } }, - "ItemsResponse_CreateExtPipeRunResponse_": { + "Items_NotificationRead": { "type": "object", "properties": { "items": { "type": "array", "items": { - "$ref": "#/components/schemas/CreateExtPipeRunResponse" + "$ref": "#/components/schemas/NotificationRead" } } } }, - "ListConfigResponse": { - "required": [ - "externalId", - "revision" - ], + "Items_Schedule": { "type": "object", "properties": { - "externalId": { - "maxLength": 255, - "minLength": 1, - "required": [ - "true" - ], - "type": "string", - "description": "External ID of the extraction pipeline this configuration revision belongs to." - }, - "revision": { - "maximum": 2147483647, - "minimum": 0, - "type": "integer", - "description": "Revision number of this configuration.", - "format": "int32" - }, - "createdTime": { - "$ref": "#/components/schemas/EpochTimestamp" - }, - "description": { - "type": "string", - "description": "A description of this configuration revision.", - "nullable": true + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Schedule" + } } } }, - "ItemsResponse_ListConfigResponse_": { + "Items_ScheduleParameters": { "type": "object", "properties": { "items": { "type": "array", "items": { - "$ref": "#/components/schemas/ListConfigResponse" + "oneOf": [ + { + "$ref": "#/components/schemas/ScheduleParametersWithExternalId" + }, + { + "$ref": "#/components/schemas/ScheduleParametersWithId" + } + ] } } } }, - "CogniteExtId": { - "required": [ - "externalId" - ], + "Items_TransformationCreate": { "type": "object", "properties": { - "externalId": { - "type": "string" + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TransformationCreate" + }, + "maxItems": 1000 } - }, - "description": "The external ID provided by the client. Must be unique for the resource type." + } }, - "CogniteIntId": { - "required": [ - "id" - ], + "Items_TransformationRead": { "type": "object", "properties": { - "id": { - "type": "integer", - "format": "int64" + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TransformationRead" + } } }, - "description": "A server-generated ID for the object." + "description": "Array of objects (Transformation)." }, - "ColumnType": { + "Items_UpdateItem_ScheduleUpdate": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/UpdateItemWithExternalId_ScheduleUpdate" + }, + { + "$ref": "#/components/schemas/UpdateItemWithId_ScheduleUpdate" + } + ] + } + } + } + }, + "Items_UpdateItem_TransformationUpdate": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/UpdateItemWithExternalId_TransformationUpdate" + }, + { + "$ref": "#/components/schemas/UpdateItemWithId_TransformationUpdate" + } + ] + }, + "maxItems": 1000 + } + } + }, + "JobRead": { "required": [ - "name", - "sqlType", - "type", - "nullable" + "id", + "uuid", + "transformationId", + "transformationExternalId", + "sourceProject", + "destinationProject", + "destination", + "conflictMode", + "query", + "ignoreNullFields", + "status" ], "type": "object", "properties": { - "name": { + "id": { + "type": "integer", + "description": "Job numeric ID.", + "format": "int32" + }, + "uuid": { "type": "string", - "description": "Column name." + "description": "UUID id of the job." }, - "sqlType": { + "transformationId": { + "type": "integer", + "description": "ID of the transformation that created this job.", + "format": "int32" + }, + "transformationExternalId": { "type": "string", - "description": "Type of the column in sql format." + "description": "External ID of the transformation that created this job." }, - "type": { - "description": "Type of the column in json format.", + "sourceProject": { + "type": "string", + "description": "CDF project which is used as source for reading data." + }, + "destinationProject": { + "type": "string", + "description": "CDF project which is used as destination for writing data." + }, + "destination": { + "description": "Destination data type.", "oneOf": [ { - "required": [ - "type" - ], - "type": "object", - "properties": { - "type": { - "type": "string" - } - } + "$ref": "#/components/schemas/AssetCentricDataSource" }, { - "type": "string" + "$ref": "#/components/schemas/DataModelSource" + }, + { + "$ref": "#/components/schemas/ViewDataSource" + }, + { + "$ref": "#/components/schemas/RawDataSource" + }, + { + "$ref": "#/components/schemas/SequenceRowDataSource" } ] }, - "nullable": { + "conflictMode": { + "$ref": "#/components/schemas/ConflictMode" + }, + "query": { + "type": "string", + "description": "The SQL query being executed." + }, + "createdTime": { + "type": "integer", + "description": "Time when the job was created: The number of milliseconds since 00:00:00 Thursday, 1 January 1970, Coordinated Universal Time (UTC), minus leap seconds.", + "format": "int64" + }, + "startedTime": { + "type": "integer", + "description": "Time when this job started executing: The number of milliseconds since 00:00:00 Thursday, 1 January 1970, Coordinated Universal Time (UTC), minus leap seconds.", + "format": "int64" + }, + "finishedTime": { + "type": "integer", + "description": "Time when this job finished running: The number of milliseconds since 00:00:00 Thursday, 1 January 1970, Coordinated Universal Time (UTC), minus leap seconds.", + "format": "int64" + }, + "lastSeenTime": { + "type": "integer", + "description": "Time when this job last registered running: The number of milliseconds since 00:00:00 Thursday, 1 January 1970, Coordinated Universal Time (UTC), minus leap seconds.", + "format": "int64" + }, + "error": { + "type": "string", + "description": "If the job failed, this will be a string describing why. When null, the job did not fail." + }, + "ignoreNullFields": { "type": "boolean", - "description": "Values for the column can be null or not." + "description": "How NULL values are handled on updates: ignore or setNull." + }, + "status": { + "$ref": "#/components/schemas/TransformationJobStatus" } }, - "description": "Details of a column in a given schema." - }, - "ConflictMode": { - "type": "string", - "description": "Behavior when the data already exists.`upsert` - Create or Update,`abort` - Create and fail when already exists,`update` - update and fail if it does not exist,`delete` - delete the matched rows.", - "enum": [ - "abort", - "delete", - "update", - "upsert" - ] + "description": "Details for the last finished job of this transformation" }, - "ContainsAny": { + "MetricCounter": { + "required": [ + "timestamp", + "name", + "count" + ], "type": "object", "properties": { - "containsAny": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Filter the transformations having any of these tags." + "timestamp": { + "type": "integer", + "description": "Time when this metric was recorded: The number of milliseconds since 00:00:00 Thursday, 1 January 1970, Coordinated Universal Time (UTC), minus leap seconds.", + "format": "int64" + }, + "name": { + "type": "string", + "description": "Name of the metric. Metrics like `assets.read` mean how many items were fetched from CDF;`assets.create` and `assets.update` inform how many resources were created or updated (note that we count objects as updated even when no field is changed). `requests` says how many HTTP request were made to CDF to complete the job. `requestWithoutRetries` does not count retried requests. Normally, these two metrics should be almost equal, if there is a big difference, it may indicate a problem with rate-limiting.", + "example": "assets.read" + }, + "count": { + "type": "integer", + "description": "The value of this metric", + "format": "int64" } } }, - "AssetCentricDataSource": { + "MinMax": { + "type": "object", + "properties": { + "min": { + "type": "integer", + "description": "Minimum timestamp (inclusive).\nThe number of milliseconds since 00:00:00 Thursday, 1 January 1970, Coordinated Universal Time (UTC), minus leap seconds.", + "format": "int64" + }, + "max": { + "type": "integer", + "description": "Maximum timestamp (inclusive).\nThe number of milliseconds since 00:00:00 Thursday, 1 January 1970, Coordinated Universal Time (UTC), minus leap seconds.", + "format": "int64" + } + }, + "description": "Range between two timestamps (inclusive)." + }, + "NonceCredentials": { "required": [ - "type" + "sessionId", + "nonce", + "cdfProjectName" ], "type": "object", "properties": { - "type": { - "type": "string", - "description": "The type of the destination resource.", - "enum": [ - "assets", - "events", - "asset_hierarchy", - "datapoints", - "string_datapoints", - "timeseries", - "sequences", - "files", - "labels", - "relationships", - "data_sets" - ] + "sessionId": { + "type": "integer", + "format": "int64" + }, + "nonce": { + "type": "string" + }, + "cdfProjectName": { + "type": "string" + }, + "clientId": { + "type": "string" } } }, - "EdgeType": { + "NotificationCreateWithExternalId": { "required": [ - "space", - "externalId" + "destination", + "transformationExternalId" ], "type": "object", "properties": { - "space": { + "destination": { "type": "string", - "description": "Space of the type" + "description": "Email address where notifications should be sent." }, - "externalId": { + "transformationExternalId": { "type": "string", - "description": "External ID of the type" + "description": "Transformation external ID to subscribe." } - }, - "description": "Target type of the connection definition" + } }, - "FlatOidcCredentials": { + "NotificationCreateWithId": { "required": [ - "clientId", - "clientSecret", - "tokenUri", - "cdfProjectName" + "destination", + "transformationId" ], "type": "object", "properties": { - "clientId": { - "type": "string" + "destination": { + "type": "string", + "description": "Email address where notifications should be sent." }, - "clientSecret": { - "type": "string" + "transformationId": { + "type": "integer", + "description": "Transformation ID to subscribe.", + "format": "int32" + } + } + }, + "NotificationRead": { + "required": [ + "id", + "createdTime", + "lastUpdatedTime", + "transformationId", + "destination" + ], + "type": "object", + "properties": { + "id": { + "type": "integer", + "description": "Id of the notification subscription. Required for deleting the subscription.", + "format": "int32" }, - "scopes": { - "type": "string" + "createdTime": { + "type": "integer", + "description": "Time when the notification subscription was created: The number of milliseconds since 00:00:00 Thursday, 1 January 1970, Coordinated Universal Time (UTC), minus leap seconds.", + "format": "int64" }, - "tokenUri": { - "type": "string" + "lastUpdatedTime": { + "type": "integer", + "description": "Time when the notification subscription was last updated: The number of milliseconds since 00:00:00 Thursday, 1 January 1970, Coordinated Universal Time (UTC), minus leap seconds.", + "format": "int64" }, - "cdfProjectName": { - "type": "string" + "transformationId": { + "type": "integer", + "description": "Id of the transformation for which the notifications are sent.", + "format": "int32" }, - "audience": { - "type": "string" + "destination": { + "type": "string", + "description": "Email address where notifications should be sent." } } }, - "FlatOidcCredentialsUpdate": { + "QueryRequestBody": { + "required": [ + "query", + "convertToString" + ], "type": "object", "properties": { - "clientId": { - "type": "string" + "query": { + "type": "string", + "description": "SQL query to run for preview." }, - "clientSecret": { - "type": "string" + "convertToString": { + "type": "boolean", + "description": "Stringify values in the query results." }, - "scopes": { - "type": "string" + "limit": { + "type": "integer", + "description": "End-result limit of the query.", + "format": "int32" }, - "tokenUri": { - "type": "string" + "sourceLimit": { + "type": "integer", + "description": "Limit for how many rows to download from the data sources.", + "format": "int32" }, - "cdfProjectName": { - "type": "string" + "inferSchemaLimit": { + "type": "integer", + "description": "Limit for how many rows that are used for inferring schema. Default is 10,000.", + "format": "int32" }, - "audience": { - "type": "string" + "timeout": { + "type": "integer", + "description": "Number of seconds to wait before cancelling a query. The default, and maximum, is 240.", + "format": "int32" } - } + }, + "description": "Query object to run a query to preview results." }, - "ViewDataSource": { + "QueryResultsBody": { "required": [ - "type" + "schema", + "results" ], "type": "object", "properties": { - "type": { - "type": "string", - "description": "The type of the destination resource indicating the instance type that the transformation will write to flexible data models.", - "enum": [ - "nodes", - "edges" - ] - }, - "view": { - "$ref": "#/components/schemas/ViewInfo" - }, - "edgeType": { - "$ref": "#/components/schemas/EdgeType" + "schema": { + "$ref": "#/components/schemas/Items_ColumnType" }, - "instanceSpace": { - "type": "string", - "description": "The space where the instances(nodes/edges) will be created." + "results": { + "$ref": "#/components/schemas/Items_JsonObject" } - } + }, + "description": "Response object containing result schema and data." }, - "DataModelSource": { + "RawDataSource": { "required": [ "type", - "dataModel" + "database", + "table" ], "type": "object", "properties": { "type": { "type": "string", - "description": "The type of the destination resource indicating that the transformation will write to data models", + "description": "The type of the destination resource indicating that the transformation will write to RAW.", "enum": [ - "instances" + "raw" ] }, - "dataModel": { - "$ref": "#/components/schemas/DataModelInfo" + "database": { + "type": "string", + "description": "The database name." }, - "instanceSpace": { + "table": { "type": "string", - "description": "The space where the instances will be created." + "description": "The table name." } } }, - "ItemsWithByIdsFlags_CogniteId": { + "Schedule": { "required": [ - "withJobDetails" + "id", + "externalId", + "createdTime", + "lastUpdatedTime", + "interval", + "isPaused" ], "type": "object", "properties": { - "items": { - "type": "array", - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/TransformationCogniteExternalId" - }, - { - "$ref": "#/components/schemas/TransformationCogniteInternalId" - } - ] - }, - "maxItems": 1000 + "id": { + "type": "integer", + "description": "Transformation ID", + "format": "int32" }, - "ignoreUnknownIds": { - "type": "boolean", - "description": "Ignore IDs and external IDs that are not found. Defaults to false." + "externalId": { + "type": "string", + "description": "Transformation externalId" }, - "withJobDetails": { + "createdTime": { + "type": "integer", + "description": "Time when the schedule was created: The number of milliseconds since 00:00:00 Thursday, 1 January 1970, Coordinated Universal Time (UTC), minus leap seconds.", + "format": "int64" + }, + "lastUpdatedTime": { + "type": "integer", + "description": "Time when the schedule was last updated: The number of milliseconds since 00:00:00 Thursday, 1 January 1970, Coordinated Universal Time (UTC), minus leap seconds.", + "format": "int64" + }, + "interval": { + "$ref": "#/components/schemas/CronValue" + }, + "isPaused": { "type": "boolean", - "description": "Whether the transformations will be returned with running job and last created job details." + "description": "If true, the transformation is not scheduled." } }, - "description": "All provided IDs and external IDs must be unique." + "description": "Details for the schedule if the transformation is scheduled" }, - "ItemsWithCursor_JobRead": { + "ScheduleParametersWithExternalId": { + "required": [ + "interval", + "externalId" + ], "type": "object", "properties": { - "items": { - "type": "array", - "items": { - "$ref": "#/components/schemas/JobRead" - } + "interval": { + "$ref": "#/components/schemas/CronValue" }, - "nextCursor": { + "isPaused": { + "type": "boolean", + "description": "If true, the transformation is not scheduled." + }, + "externalId": { "type": "string", - "description": "Cursor to get the next page of results (if available)." + "description": "External ID of the scheduled transformation" } } }, - "ItemsWithCursor_NotificationRead": { + "ScheduleParametersWithId": { + "required": [ + "interval", + "id" + ], "type": "object", "properties": { - "items": { - "type": "array", - "items": { - "$ref": "#/components/schemas/NotificationRead" - } + "interval": { + "$ref": "#/components/schemas/CronValue" }, - "nextCursor": { - "type": "string", - "description": "Cursor to get the next page of results (if available)." + "isPaused": { + "type": "boolean", + "description": "If true, the transformation is not scheduled." + }, + "id": { + "type": "integer", + "description": "ID of the scheduled transformation", + "format": "int32" } } }, - "ItemsWithCursor_Schedule": { + "ScheduleUpdate": { "type": "object", "properties": { - "items": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Schedule" + "interval": { + "type": "object", + "required": [ + "set" + ], + "properties": { + "set": { + "$ref": "#/components/schemas/CronValue" + } } }, - "nextCursor": { - "type": "string", - "description": "Cursor to get the next page of results (if available)." + "isPaused": { + "allOf": [ + { + "$ref": "#/components/schemas/SetBooleanField" + } + ], + "description": "If true, the transformation is not scheduled." } } }, - "ItemsWithCursor_TransformationRead": { + "SequenceRowDataSource": { + "required": [ + "type", + "externalId" + ], "type": "object", "properties": { - "items": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TransformationRead" - } + "type": { + "type": "string", + "description": "The type of the destination resource indicating that the transformation will write to Sequence Rows.", + "enum": [ + "sequence_rows" + ] }, - "nextCursor": { + "externalId": { "type": "string", - "description": "Cursor to get the next page of results (if available)." + "description": "The externalId of sequence" } - }, - "description": "Array of objects (Transformation)." + } }, - "ItemsWithIgnoreUnknownIds_CogniteId": { + "SessionInfo": { "type": "object", "properties": { - "items": { - "type": "array", - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/TransformationCogniteExternalId" - }, - { - "$ref": "#/components/schemas/TransformationCogniteInternalId" - } - ] - }, - "maxItems": 1000 + "clientId": { + "type": "string", + "description": "Idp client ID" }, - "ignoreUnknownIds": { - "type": "boolean", - "description": "Ignore IDs and external IDs that are not found. Defaults to false." + "sessionId": { + "type": "integer", + "description": "CDF session ID", + "format": "int64" + }, + "projectName": { + "type": "string", + "description": "CDF project name" } }, - "description": "All provided IDs and external IDs must be unique." + "description": "Details for the session used to read from the source project." }, - "ItemsWithIgnoreUnknownIds_CogniteInternalId": { + "CronValue": { + "type": "string", + "example": "0 0 * * *", + "description": "Cron expression describes when the job should run." + }, + "SetNull_FlatOidcCredentialsUpdate": { + "required": [ + "setNull" + ], "type": "object", "properties": { - "items": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TransformationCogniteInternalId" - } - }, - "ignoreUnknownIds": { - "type": "boolean", - "description": "Ignore IDs and external IDs that are not found. Defaults to false." + "setNull": { + "type": "boolean" } - }, - "description": "All provided IDs and external IDs must be unique." + } }, - "Items_CogniteInternalId": { + "SetNull_Long": { + "required": [ + "setNull" + ], "type": "object", "properties": { - "items": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TransformationCogniteInternalId" - } + "setNull": { + "type": "boolean" } } }, - "Items_ColumnType": { + "SetNull_NonceCredentials": { + "required": [ + "setNull" + ], "type": "object", "properties": { - "items": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ColumnType" - } + "setNull": { + "type": "boolean" } } }, - "Items_JobRead": { + "SetValue_ConflictMode": { + "required": [ + "set" + ], "type": "object", "properties": { - "items": { - "type": "array", - "items": { - "$ref": "#/components/schemas/JobRead" - } + "set": { + "$ref": "#/components/schemas/ConflictMode" } - } + }, + "description": "Set a new value for the transformation conflictMode (action)." }, - "Items_JsonObject": { + "SetValue_DataSource": { + "required": [ + "set" + ], "type": "object", "properties": { - "items": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": { - "type": "string" + "set": { + "oneOf": [ + { + "$ref": "#/components/schemas/AssetCentricDataSource" + }, + { + "$ref": "#/components/schemas/DataModelSource" + }, + { + "$ref": "#/components/schemas/ViewDataSource" + }, + { + "$ref": "#/components/schemas/RawDataSource" + }, + { + "$ref": "#/components/schemas/SequenceRowDataSource" } - } + ] } }, - "description": "Query result in json format." + "description": "Set a new value for the transformation destination type. Indicates result resource type." }, - "Items_MetricCounter": { + "SetValue_FlatOidcCredentialsUpdate": { + "required": [ + "set" + ], "type": "object", "properties": { - "items": { - "type": "array", - "items": { - "$ref": "#/components/schemas/MetricCounter" - } + "set": { + "$ref": "#/components/schemas/FlatOidcCredentialsUpdate" } } }, - "Items_NotificationCreate": { + "SetValue_Long": { + "required": [ + "set" + ], "type": "object", "properties": { - "items": { - "type": "array", - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/NotificationCreateWithExternalId" - }, - { - "$ref": "#/components/schemas/NotificationCreateWithId" - } - ] - }, - "maxItems": 1000 + "set": { + "type": "integer", + "format": "int64" } } }, - "Items_NotificationRead": { + "SetValue_NonceCredentials": { + "required": [ + "set" + ], "type": "object", "properties": { - "items": { - "type": "array", - "items": { - "$ref": "#/components/schemas/NotificationRead" - } + "set": { + "$ref": "#/components/schemas/NonceCredentials" } } }, - "Items_Schedule": { + "SetValue_Seq_String": { "type": "object", "properties": { - "items": { + "set": { "type": "array", "items": { - "$ref": "#/components/schemas/Schedule" - } + "type": "string", + "minLength": 1, + "maxLength": 35 + }, + "description": "List of tags for the Transformation.", + "minItems": 1, + "maxItems": 5 + } + } + }, + "TransformBlockedInfo": { + "required": [ + "reason", + "createdTime" + ], + "type": "object", + "properties": { + "reason": { + "type": "string", + "description": "Indicates the reason if the transformation is blocked." + }, + "createdTime": { + "type": "integer", + "description": "Indicates the blocked time if the transformation is blocked: The number of milliseconds since 00:00:00 Thursday, 1 January 1970, Coordinated Universal Time (UTC), minus leap seconds.", + "format": "int64" } - } + }, + "description": "Provides reason and time if the transformation is blocked." }, - "Items_ScheduleParameters": { + "TransformationAdvancedList": { + "required": [ + "filter" + ], "type": "object", "properties": { - "items": { - "type": "array", - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/ScheduleParametersWithExternalId" - }, - { - "$ref": "#/components/schemas/ScheduleParametersWithId" - } - ] - } + "filter": { + "$ref": "#/components/schemas/TransformationFilter" + }, + "limit": { + "type": "integer", + "format": "int32" + }, + "cursor": { + "type": "string" } } }, - "Items_TransformationCreate": { + "TransformationCogniteExternalId": { + "required": [ + "externalId" + ], "type": "object", "properties": { - "items": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TransformationCreate" - }, - "maxItems": 1000 + "externalId": { + "type": "string", + "description": "The external ID provided by the client. Must be unique for the resource type." } } }, - "Items_TransformationRead": { + "TransformationCogniteInternalId": { + "required": [ + "id" + ], "type": "object", "properties": { - "items": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TransformationRead" - } + "id": { + "type": "integer", + "description": "A server-generated ID for the object.", + "format": "int32" } - }, - "description": "Array of objects (Transformation)." + } }, - "Items_UpdateItem_ScheduleUpdate": { + "TransformationCreate": { + "required": [ + "name", + "externalId", + "ignoreNullFields" + ], "type": "object", "properties": { - "items": { + "name": { + "type": "string" + }, + "query": { + "type": "string" + }, + "destination": { + "description": "Destination data type.", + "oneOf": [ + { + "$ref": "#/components/schemas/AssetCentricDataSource" + }, + { + "$ref": "#/components/schemas/DataModelSource" + }, + { + "$ref": "#/components/schemas/ViewDataSource" + }, + { + "$ref": "#/components/schemas/RawDataSource" + }, + { + "$ref": "#/components/schemas/SequenceRowDataSource" + } + ] + }, + "conflictMode": { + "$ref": "#/components/schemas/ConflictMode" + }, + "isPublic": { + "type": "boolean" + }, + "sourceOidcCredentials": { + "$ref": "#/components/schemas/FlatOidcCredentials" + }, + "destinationOidcCredentials": { + "$ref": "#/components/schemas/FlatOidcCredentials" + }, + "sourceNonce": { + "$ref": "#/components/schemas/NonceCredentials" + }, + "destinationNonce": { + "$ref": "#/components/schemas/NonceCredentials" + }, + "externalId": { + "type": "string", + "description": "The external ID provided by the client. Must be unique for the resource type." + }, + "ignoreNullFields": { + "type": "boolean", + "description": "How NULL values are handled on updates: ignore or setNull." + }, + "dataSetId": { + "type": "integer", + "format": "int64" + }, + "tags": { "type": "array", "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/UpdateItemWithExternalId_ScheduleUpdate" - }, - { - "$ref": "#/components/schemas/UpdateItemWithId_ScheduleUpdate" - } - ] - } + "type": "string", + "minLength": 1, + "maxLength": 35 + }, + "description": "List of tags for the Transformation.", + "minItems": 1, + "maxItems": 5 } } }, - "Items_UpdateItem_TransformationUpdate": { + "TransformationFilter": { "type": "object", "properties": { - "items": { + "isPublic": { + "type": "boolean", + "description": "Whether public transformations should be included in the results. The default is true." + }, + "nameRegex": { + "type": "string", + "description": "Regex expression to match the transformation name." + }, + "queryRegex": { + "type": "string", + "description": "Regex expression to match the transformation query." + }, + "destinationType": { + "type": "string", + "description": "Transformation destination resource name to filter by." + }, + "conflictMode": { + "$ref": "#/components/schemas/ConflictMode" + }, + "hasBlockedError": { + "type": "boolean", + "description": "Whether only the blocked transformations should be included in the results." + }, + "cdfProjectName": { + "type": "string", + "description": "Project name to filter by configured source and destination project." + }, + "createdTime": { + "$ref": "#/components/schemas/MinMax" + }, + "lastUpdatedTime": { + "$ref": "#/components/schemas/MinMax" + }, + "dataSetIds": { "type": "array", "items": { "oneOf": [ { - "$ref": "#/components/schemas/UpdateItemWithExternalId_TransformationUpdate" + "$ref": "#/components/schemas/CogniteExtId" }, { - "$ref": "#/components/schemas/UpdateItemWithId_TransformationUpdate" + "$ref": "#/components/schemas/CogniteIntId" } ] }, - "maxItems": 1000 + "description": "Return only transformations in the specified data sets." + }, + "tags": { + "description": "Return the transformations depending on the tags filter provided.", + "oneOf": [ + { + "$ref": "#/components/schemas/ContainsAny" + } + ] } } }, - "JobRead": { + "TransformationJobStatus": { + "type": "string", + "description": "Status of the job at the request time.", + "enum": [ + "Completed", + "Created", + "Failed", + "Running" + ] + }, + "TransformationRead": { "required": [ "id", - "uuid", - "transformationId", - "transformationExternalId", - "sourceProject", - "destinationProject", + "name", + "query", "destination", "conflictMode", - "query", - "ignoreNullFields", - "status" + "isPublic", + "createdTime", + "lastUpdatedTime", + "owner", + "ownerIsCurrentUser", + "hasSourceOidcCredentials", + "hasDestinationOidcCredentials", + "externalId", + "ignoreNullFields" ], "type": "object", "properties": { "id": { "type": "integer", - "description": "Job numeric ID.", - "format": "int32" - }, - "uuid": { - "type": "string", - "description": "UUID id of the job." - }, - "transformationId": { - "type": "integer", - "description": "ID of the transformation that created this job.", + "description": "Transformation ID.", "format": "int32" }, - "transformationExternalId": { - "type": "string", - "description": "External ID of the transformation that created this job." - }, - "sourceProject": { + "name": { "type": "string", - "description": "CDF project which is used as source for reading data." + "description": "Transformation name." }, - "destinationProject": { + "query": { "type": "string", - "description": "CDF project which is used as destination for writing data." + "description": "Transformation query." }, "destination": { "description": "Destination data type.", @@ -52141,1768 +60195,2071 @@ "conflictMode": { "$ref": "#/components/schemas/ConflictMode" }, - "query": { - "type": "string", - "description": "The SQL query being executed." + "isPublic": { + "type": "boolean", + "description": "Indicates if the transformation is visible to all in project or only to the owner." + }, + "blocked": { + "$ref": "#/components/schemas/TransformBlockedInfo" }, "createdTime": { "type": "integer", - "description": "Time when the job was created: The number of milliseconds since 00:00:00 Thursday, 1 January 1970, Coordinated Universal Time (UTC), minus leap seconds.", + "description": "Time when the transformation was created: The number of milliseconds since 00:00:00 Thursday, 1 January 1970, Coordinated Universal Time (UTC), minus leap seconds.", "format": "int64" }, - "startedTime": { + "lastUpdatedTime": { "type": "integer", - "description": "Time when this job started executing: The number of milliseconds since 00:00:00 Thursday, 1 January 1970, Coordinated Universal Time (UTC), minus leap seconds.", + "description": "Time when the transformation was last updated: The number of milliseconds since 00:00:00 Thursday, 1 January 1970, Coordinated Universal Time (UTC), minus leap seconds.", "format": "int64" }, - "finishedTime": { - "type": "integer", - "description": "Time when this job finished running: The number of milliseconds since 00:00:00 Thursday, 1 January 1970, Coordinated Universal Time (UTC), minus leap seconds.", - "format": "int64" + "owner": { + "type": "string", + "description": "Owner of the transformation: requester's identity." }, - "lastSeenTime": { - "type": "integer", - "description": "Time when this job last registered running: The number of milliseconds since 00:00:00 Thursday, 1 January 1970, Coordinated Universal Time (UTC), minus leap seconds.", - "format": "int64" + "ownerIsCurrentUser": { + "type": "boolean", + "description": "Indicates if the transformation belongs to the current user." }, - "error": { + "hasSourceOidcCredentials": { + "type": "boolean", + "description": "Indicates if the transformation is configured with a source oidc credentials set." + }, + "hasDestinationOidcCredentials": { + "type": "boolean", + "description": "Indicates if the transformation is configured with a destination oidc credentials set." + }, + "sourceSession": { + "$ref": "#/components/schemas/SessionInfo" + }, + "destinationSession": { + "$ref": "#/components/schemas/SessionInfo" + }, + "lastFinishedJob": { + "$ref": "#/components/schemas/JobRead" + }, + "runningJob": { + "$ref": "#/components/schemas/JobRead" + }, + "schedule": { + "$ref": "#/components/schemas/Schedule" + }, + "externalId": { "type": "string", - "description": "If the job failed, this will be a string describing why. When null, the job did not fail." + "description": "The external ID provided by the client. Must be unique for the resource type." }, "ignoreNullFields": { "type": "boolean", "description": "How NULL values are handled on updates: ignore or setNull." }, - "status": { - "$ref": "#/components/schemas/TransformationJobStatus" + "dataSetId": { + "type": "integer", + "description": "Gets the transformation dataset id which can be used for access control.", + "format": "int64" + }, + "tags": { + "type": "array", + "items": { + "type": "string", + "minLength": 1, + "maxLength": 35 + }, + "description": "List of tags for the Transformation.", + "minItems": 1, + "maxItems": 5 } - }, - "description": "Details for the last finished job of this transformation" + } }, - "MetricCounter": { + "TransformationRunWithExternalId": { "required": [ - "timestamp", - "name", - "count" + "externalId" ], "type": "object", "properties": { - "timestamp": { - "type": "integer", - "description": "Time when this metric was recorded: The number of milliseconds since 00:00:00 Thursday, 1 January 1970, Coordinated Universal Time (UTC), minus leap seconds.", - "format": "int64" - }, - "name": { - "type": "string", - "description": "Name of the metric. Metrics like `assets.read` mean how many items were fetched from CDF;`assets.create` and `assets.update` inform how many resources were created or updated (note that we count objects as updated even when no field is changed). `requests` says how many HTTP request were made to CDF to complete the job. `requestWithoutRetries` does not count retried requests. Normally, these two metrics should be almost equal, if there is a big difference, it may indicate a problem with rate-limiting.", - "example": "assets.read" + "externalId": { + "type": "string" }, - "count": { - "type": "integer", - "description": "The value of this metric", - "format": "int64" + "nonce": { + "$ref": "#/components/schemas/NonceCredentials" } } }, - "MinMax": { + "TransformationRunWithId": { + "required": [ + "id" + ], "type": "object", "properties": { - "min": { + "id": { "type": "integer", - "description": "Minimum timestamp (inclusive).\nThe number of milliseconds since 00:00:00 Thursday, 1 January 1970, Coordinated Universal Time (UTC), minus leap seconds.", - "format": "int64" + "format": "int32" }, - "max": { - "type": "integer", - "description": "Maximum timestamp (inclusive).\nThe number of milliseconds since 00:00:00 Thursday, 1 January 1970, Coordinated Universal Time (UTC), minus leap seconds.", - "format": "int64" + "nonce": { + "$ref": "#/components/schemas/NonceCredentials" } - }, - "description": "Range between two timestamps (inclusive)." + } }, - "NonceCredentials": { - "required": [ - "sessionId", - "nonce", - "cdfProjectName" - ], + "TransformationUpdate": { "type": "object", "properties": { - "sessionId": { - "type": "integer", - "format": "int64" + "name": { + "allOf": [ + { + "$ref": "#/components/schemas/SetStringField" + } + ], + "description": "Set a new value for the transformation name." }, - "nonce": { - "type": "string" + "externalId": { + "allOf": [ + { + "$ref": "#/components/schemas/SetExternalId" + } + ], + "description": "Set a new value for the transformation External ID." }, - "cdfProjectName": { - "type": "string" + "destination": { + "$ref": "#/components/schemas/SetValue_DataSource" }, - "clientId": { - "type": "string" + "conflictMode": { + "$ref": "#/components/schemas/SetValue_ConflictMode" + }, + "query": { + "allOf": [ + { + "$ref": "#/components/schemas/SetStringField" + } + ], + "description": "Set a new value for the transformation query." + }, + "sourceOidcCredentials": { + "description": "Set a new value for the transformation source OIDC credentials, or remove it.", + "oneOf": [ + { + "$ref": "#/components/schemas/SetNull_FlatOidcCredentialsUpdate" + }, + { + "$ref": "#/components/schemas/SetValue_FlatOidcCredentialsUpdate" + } + ] + }, + "destinationOidcCredentials": { + "description": "Set a new value for the transformation destination OIDC credentials, or remove it.", + "oneOf": [ + { + "$ref": "#/components/schemas/SetNull_FlatOidcCredentialsUpdate" + }, + { + "$ref": "#/components/schemas/SetValue_FlatOidcCredentialsUpdate" + } + ] + }, + "sourceNonce": { + "description": "Bind to a new source CDF session, or remove it", + "oneOf": [ + { + "$ref": "#/components/schemas/SetNull_NonceCredentials" + }, + { + "$ref": "#/components/schemas/SetValue_NonceCredentials" + } + ] + }, + "destinationNonce": { + "description": "Bind to a new destination session, or remove it", + "oneOf": [ + { + "$ref": "#/components/schemas/SetNull_NonceCredentials" + }, + { + "$ref": "#/components/schemas/SetValue_NonceCredentials" + } + ] + }, + "isPublic": { + "allOf": [ + { + "$ref": "#/components/schemas/SetBooleanField" + } + ], + "description": "Set a new value for the transformation isPublic flag to change who can see the transformation." + }, + "ignoreNullFields": { + "allOf": [ + { + "$ref": "#/components/schemas/SetBooleanField" + } + ], + "description": "Set a new value for the transformation ignoreNullFields flag to change to change how nulls are handled on updates." + }, + "dataSetId": { + "description": "Set a new value for the transformation dataset id which is used for access control.", + "oneOf": [ + { + "$ref": "#/components/schemas/SetNull_Long" + }, + { + "$ref": "#/components/schemas/SetValue_Long" + } + ] + }, + "tags": { + "description": "List of tags for the Transformation.", + "oneOf": [ + { + "$ref": "#/components/schemas/SetValue_Seq_String" + }, + { + "$ref": "#/components/schemas/UpdateArray_String" + } + ] + } + } + }, + "UpdateArray_String": { + "type": "object", + "properties": { + "add": { + "type": "array", + "items": { + "type": "string", + "minLength": 1, + "maxLength": 35 + }, + "description": "List of tags to add to the Transformation." + }, + "remove": { + "type": "array", + "items": { + "type": "string", + "minLength": 1, + "maxLength": 35 + }, + "description": "List of tags to remove from the Transformation." } } }, - "NotificationCreateWithExternalId": { + "UpdateItemWithExternalId_ScheduleUpdate": { "required": [ - "destination", - "transformationExternalId" + "update", + "externalId" ], "type": "object", "properties": { - "destination": { - "type": "string", - "description": "Email address where notifications should be sent." + "update": { + "$ref": "#/components/schemas/ScheduleUpdate" }, - "transformationExternalId": { + "externalId": { "type": "string", - "description": "Transformation external ID to subscribe." + "description": "The external ID provided by the client. Must be unique for the resource type." } } }, - "NotificationCreateWithId": { + "UpdateItemWithExternalId_TransformationUpdate": { "required": [ - "destination", - "transformationId" + "update", + "externalId" ], "type": "object", "properties": { - "destination": { - "type": "string", - "description": "Email address where notifications should be sent." + "update": { + "$ref": "#/components/schemas/TransformationUpdate" }, - "transformationId": { - "type": "integer", - "description": "Transformation ID to subscribe.", - "format": "int32" + "externalId": { + "type": "string", + "description": "The external ID provided by the client. Must be unique for the resource type." } } }, - "NotificationRead": { + "UpdateItemWithId_ScheduleUpdate": { "required": [ - "id", - "createdTime", - "lastUpdatedTime", - "transformationId", - "destination" + "update", + "id" ], "type": "object", "properties": { - "id": { - "type": "integer", - "description": "Id of the notification subscription. Required for deleting the subscription.", - "format": "int32" - }, - "createdTime": { - "type": "integer", - "description": "Time when the notification subscription was created: The number of milliseconds since 00:00:00 Thursday, 1 January 1970, Coordinated Universal Time (UTC), minus leap seconds.", - "format": "int64" - }, - "lastUpdatedTime": { - "type": "integer", - "description": "Time when the notification subscription was last updated: The number of milliseconds since 00:00:00 Thursday, 1 January 1970, Coordinated Universal Time (UTC), minus leap seconds.", - "format": "int64" + "update": { + "$ref": "#/components/schemas/ScheduleUpdate" }, - "transformationId": { + "id": { "type": "integer", - "description": "Id of the transformation for which the notifications are sent.", + "description": "A server-generated ID for the object.", "format": "int32" - }, - "destination": { - "type": "string", - "description": "Email address where notifications should be sent." } } }, - "QueryRequestBody": { + "UpdateItemWithId_TransformationUpdate": { "required": [ - "query", - "convertToString" + "update", + "id" ], "type": "object", "properties": { - "query": { - "type": "string", - "description": "SQL query to run for preview." - }, - "convertToString": { - "type": "boolean", - "description": "Stringify values in the query results." - }, - "limit": { - "type": "integer", - "description": "End-result limit of the query.", - "format": "int32" - }, - "sourceLimit": { - "type": "integer", - "description": "Limit for how many rows to download from the data sources.", - "format": "int32" - }, - "inferSchemaLimit": { - "type": "integer", - "description": "Limit for how many rows that are used for inferring schema. Default is 10,000.", - "format": "int32" + "update": { + "$ref": "#/components/schemas/TransformationUpdate" }, - "timeout": { + "id": { "type": "integer", - "description": "Number of seconds to wait before cancelling a query. The default, and maximum, is 240.", + "description": "A server-generated ID for the object.", "format": "int32" } - }, - "description": "Query object to run a query to preview results." - }, - "QueryResultsBody": { - "required": [ - "schema", - "results" - ], - "type": "object", - "properties": { - "schema": { - "$ref": "#/components/schemas/Items_ColumnType" - }, - "results": { - "$ref": "#/components/schemas/Items_JsonObject" - } - }, - "description": "Response object containing result schema and data." + } }, - "RawDataSource": { + "ViewInfo": { "required": [ - "type", - "database", - "table" + "space", + "externalId", + "version" ], "type": "object", "properties": { - "type": { + "space": { "type": "string", - "description": "The type of the destination resource indicating that the transformation will write to RAW.", - "enum": [ - "raw" - ] + "description": "Space of the View" }, - "database": { + "externalId": { "type": "string", - "description": "The database name." + "description": "External ID of the View" }, - "table": { + "version": { "type": "string", - "description": "The table name." + "description": "Version of the View" } - } + }, + "description": "Target view info" }, - "Schedule": { + "DataModelInfo": { "required": [ - "id", + "space", "externalId", - "createdTime", - "lastUpdatedTime", - "interval", - "isPaused" + "version", + "destinationType" ], "type": "object", "properties": { - "id": { - "type": "integer", - "description": "Transformation ID", - "format": "int32" + "space": { + "type": "string", + "description": "Space of the Data Model" }, "externalId": { "type": "string", - "description": "Transformation externalId" - }, - "createdTime": { - "type": "integer", - "description": "Time when the schedule was created: The number of milliseconds since 00:00:00 Thursday, 1 January 1970, Coordinated Universal Time (UTC), minus leap seconds.", - "format": "int64" + "description": "External ID of the Data Model" }, - "lastUpdatedTime": { - "type": "integer", - "description": "Time when the schedule was last updated: The number of milliseconds since 00:00:00 Thursday, 1 January 1970, Coordinated Universal Time (UTC), minus leap seconds.", - "format": "int64" + "version": { + "type": "string", + "description": "Version of the Data Model" }, - "interval": { - "$ref": "#/components/schemas/CronValue" + "destinationType": { + "type": "string", + "description": "External ID of the type(view) in the data model" }, - "isPaused": { - "type": "boolean", - "description": "If true, the transformation is not scheduled." + "destinationRelationshipFromType": { + "type": "string", + "description": "Property Identifier of the connection definition in destinationType" } }, - "description": "Details for the schedule if the transformation is scheduled" + "description": "Target data model info" }, - "ScheduleParametersWithExternalId": { + "AnnotationsV2SuggestSchema": { + "type": "object", "required": [ - "interval", - "externalId" + "annotatedResourceType", + "annotatedResourceId", + "annotationType", + "creatingApp", + "creatingAppVersion", + "creatingUser", + "data" ], - "type": "object", "properties": { - "interval": { - "$ref": "#/components/schemas/CronValue" + "annotatedResourceType": { + "$ref": "#/components/schemas/AnnotatedResourceType" }, - "isPaused": { - "type": "boolean", - "description": "If true, the transformation is not scheduled." + "annotatedResourceId": { + "$ref": "#/components/schemas/AnnotatedResourceId" }, - "externalId": { - "type": "string", - "description": "External ID of the scheduled transformation" - } - } - }, - "ScheduleParametersWithId": { - "required": [ - "interval", - "id" - ], - "type": "object", - "properties": { - "interval": { - "$ref": "#/components/schemas/CronValue" + "annotationType": { + "$ref": "#/components/schemas/AnnotationType" }, - "isPaused": { - "type": "boolean", - "description": "If true, the transformation is not scheduled." + "creatingApp": { + "$ref": "#/components/schemas/Application" }, - "id": { - "type": "integer", - "description": "ID of the scheduled transformation", - "format": "int32" + "creatingAppVersion": { + "$ref": "#/components/schemas/SemanticVersion" + }, + "creatingUser": { + "$ref": "#/components/schemas/User" + }, + "data": { + "$ref": "#/components/schemas/AnnotationData" } } }, - "ScheduleUpdate": { - "type": "object", - "properties": { - "interval": { + "AnnotationsV2CreateSchema": { + "allOf": [ + { + "$ref": "#/components/schemas/AnnotationsV2SuggestSchema" + }, + { "type": "object", "required": [ - "set" + "status" ], "properties": { - "set": { - "$ref": "#/components/schemas/CronValue" + "status": { + "$ref": "#/components/schemas/Status" } } - }, - "isPaused": { - "allOf": [ - { - "$ref": "#/components/schemas/SetBooleanField" - } - ], - "description": "If true, the transformation is not scheduled." - } - } - }, - "SequenceRowDataSource": { - "required": [ - "type", - "externalId" - ], - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The type of the destination resource indicating that the transformation will write to Sequence Rows.", - "enum": [ - "sequence_rows" - ] - }, - "externalId": { - "type": "string", - "description": "The externalId of sequence" } - } + ] }, - "SessionInfo": { + "AnnotationsV2ListResponseSchema": { "type": "object", - "properties": { - "clientId": { - "type": "string", - "description": "Idp client ID" - }, - "sessionId": { - "type": "integer", - "description": "CDF session ID", - "format": "int64" - }, - "projectName": { - "type": "string", - "description": "CDF project name" - } - }, - "description": "Details for the session used to read from the source project." - }, - "CronValue": { - "type": "string", - "example": "0 0 * * *", - "description": "Cron expression describes when the job should run." - }, - "SetNull_FlatOidcCredentialsUpdate": { "required": [ - "setNull" + "items" ], - "type": "object", "properties": { - "setNull": { - "type": "boolean" + "items": { + "type": "array", + "description": "A list of annotations", + "items": { + "$ref": "#/components/schemas/AnnotationsV2ResponseSchema" + } } } }, - "SetNull_Long": { - "required": [ - "setNull" - ], + "AnnotationsV2ResponseSchema": { "type": "object", - "properties": { - "setNull": { - "type": "boolean" - } - } - }, - "SetNull_NonceCredentials": { "required": [ - "setNull" + "id", + "createdTime", + "lastUpdatedTime", + "annotatedResourceType", + "annotationType", + "creatingApp", + "creatingAppVersion", + "creatingUser", + "data", + "status" ], - "type": "object", "properties": { - "setNull": { - "type": "boolean" + "id": { + "$ref": "#/components/schemas/AnnotationId" + }, + "createdTime": { + "$ref": "#/components/schemas/EpochTimestamp" + }, + "lastUpdatedTime": { + "$ref": "#/components/schemas/EpochTimestamp" + }, + "annotatedResourceType": { + "$ref": "#/components/schemas/AnnotatedResourceType" + }, + "annotatedResourceId": { + "$ref": "#/components/schemas/AnnotatedResourceId" + }, + "annotationType": { + "$ref": "#/components/schemas/AnnotationType" + }, + "creatingApp": { + "$ref": "#/components/schemas/Application" + }, + "creatingAppVersion": { + "$ref": "#/components/schemas/SemanticVersion" + }, + "creatingUser": { + "$ref": "#/components/schemas/User" + }, + "data": { + "$ref": "#/components/schemas/AnnotationData" + }, + "status": { + "$ref": "#/components/schemas/Status" } } }, - "SetValue_ConflictMode": { - "required": [ - "set" - ], + "AnnotationsV2ReverseLookupResponseSchema": { "type": "object", - "properties": { - "set": { - "$ref": "#/components/schemas/ConflictMode" - } - }, - "description": "Set a new value for the transformation conflictMode (action)." - }, - "SetValue_DataSource": { "required": [ - "set" + "items", + "annotatedResourceType" ], - "type": "object", "properties": { - "set": { - "oneOf": [ - { - "$ref": "#/components/schemas/AssetCentricDataSource" - }, - { - "$ref": "#/components/schemas/DataModelSource" - }, - { - "$ref": "#/components/schemas/ViewDataSource" - }, - { - "$ref": "#/components/schemas/RawDataSource" - }, + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ReverseLookupResourceReference" + } + }, + "nextCursor": { + "allOf": [ { - "$ref": "#/components/schemas/SequenceRowDataSource" + "$ref": "#/components/schemas/StrCursor" } - ] - } - }, - "description": "Set a new value for the transformation destination type. Indicates result resource type." - }, - "SetValue_FlatOidcCredentialsUpdate": { - "required": [ - "set" - ], - "type": "object", - "properties": { - "set": { - "$ref": "#/components/schemas/FlatOidcCredentialsUpdate" + ], + "nullable": true, + "type": "string", + "example": null + }, + "annotatedResourceType": { + "$ref": "#/components/schemas/AnnotatedResourceType" } } }, - "SetValue_Long": { - "required": [ - "set" - ], + "AnnotationsV2ReferenceSchema": { "type": "object", - "properties": { - "set": { - "type": "integer", - "format": "int64" - } - } - }, - "SetValue_NonceCredentials": { + "description": "A reference to an existing annotation", "required": [ - "set" + "id" ], - "type": "object", "properties": { - "set": { - "$ref": "#/components/schemas/NonceCredentials" + "id": { + "$ref": "#/components/schemas/AnnotationId" } } }, - "SetValue_Seq_String": { + "AnnotationsV2FilterSchema": { "type": "object", + "description": "A filter to apply on annotations", + "required": [ + "annotatedResourceType", + "annotatedResourceIds" + ], "properties": { - "set": { + "annotatedResourceType": { + "$ref": "#/components/schemas/AnnotatedResourceType" + }, + "annotatedResourceIds": { "type": "array", "items": { - "type": "string", - "minLength": 1, - "maxLength": 35 + "$ref": "#/components/schemas/ResourceReference" + }, + "minItems": 1, + "maxItems": 1000 + }, + "annotationType": { + "$ref": "#/components/schemas/AnnotationType" + }, + "creatingApp": { + "$ref": "#/components/schemas/Application" + }, + "creatingAppVersion": { + "$ref": "#/components/schemas/SemanticVersion" + }, + "creatingUser": { + "$ref": "#/components/schemas/User" + }, + "status": { + "$ref": "#/components/schemas/Status" + }, + "data": { + "description": "Filter annotations by their data keys and values (case-sensitive). Concretely, by providing this field, we check for all annotations that contains the data filter as a subset.\nIf `annotationType` is not specified, the data filter will applied across all annotation types.", + "example": { + "label": "cat", + "fileRef": { + "externalId": "abc" + } }, - "description": "List of tags for the Transformation.", - "minItems": 1, - "maxItems": 5 + "type": "object" + } + }, + "example": { + "annotatedResourceType": "file", + "annotatedResourceIds": [ + { + "id": 1066 + }, + { + "id": 1067 + } + ], + "status": "approved", + "data": { + "label": "cat" } } }, - "TransformBlockedInfo": { - "required": [ - "reason", - "createdTime" - ], + "AnnotationsV2ReverseLookupFilterSchema": { "type": "object", - "properties": { - "reason": { - "type": "string", - "description": "Indicates the reason if the transformation is blocked." - }, - "createdTime": { - "type": "integer", - "description": "Indicates the blocked time if the transformation is blocked: The number of milliseconds since 00:00:00 Thursday, 1 January 1970, Coordinated Universal Time (UTC), minus leap seconds.", - "format": "int64" - } - }, - "description": "Provides reason and time if the transformation is blocked." - }, - "TransformationAdvancedList": { + "description": "A filter for reverse lookups", "required": [ - "filter" + "annotatedResourceType" ], - "type": "object", "properties": { - "filter": { - "$ref": "#/components/schemas/TransformationFilter" + "annotatedResourceType": { + "$ref": "#/components/schemas/AnnotatedResourceType" }, - "limit": { - "type": "integer", - "format": "int32" + "annotationType": { + "$ref": "#/components/schemas/AnnotationType" }, - "cursor": { - "type": "string" + "creatingApp": { + "$ref": "#/components/schemas/Application" + }, + "creatingAppVersion": { + "$ref": "#/components/schemas/SemanticVersion" + }, + "creatingUser": { + "$ref": "#/components/schemas/User" + }, + "status": { + "$ref": "#/components/schemas/Status" + }, + "data": { + "description": "Filter annotations by their data keys and values (case-sensitive). Concretely, by providing this field, we check for all annotations that contains the data filter as a subset.\nIf `annotationType` is not specified, the data filter will applied across all annotation types.", + "example": { + "label": "cat", + "fileRef": { + "externalId": "abc" + } + }, + "type": "object" + } + }, + "example": { + "annotatedResourceType": "file", + "status": "approved", + "data": { + "label": "cat", + "fileRef": { + "externalId": "abc" + } } } }, - "TransformationCogniteExternalId": { + "AnnotationsV2CursoredListResponseSchema": { + "type": "object", + "description": "A cursored list of existing annotations", "required": [ - "externalId" + "items" ], - "type": "object", "properties": { - "externalId": { + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AnnotationsV2ResponseSchema" + } + }, + "nextCursor": { + "allOf": [ + { + "$ref": "#/components/schemas/StrCursor" + } + ], + "nullable": true, "type": "string", - "description": "The external ID provided by the client. Must be unique for the resource type." + "example": null } } }, - "TransformationCogniteInternalId": { + "AnnotationsV2UpdateItemSchema": { + "type": "object", + "description": "An update object to apply to an annotation", "required": [ - "id" + "id", + "update" ], - "type": "object", "properties": { "id": { - "type": "integer", - "description": "A server-generated ID for the object.", - "format": "int32" + "$ref": "#/components/schemas/AnnotationId" + }, + "update": { + "$ref": "#/components/schemas/AnnotationsV2UpdateDataSchema" } } }, - "TransformationCreate": { - "required": [ - "name", - "externalId", - "ignoreNullFields" - ], + "AnnotationsV2UpdateDataSchema": { "type": "object", + "description": "Each fields represent a \"delta\" that will be applied onto the corresponding field of the original\nannotation.\n\n\n### Updating Annotation Type or Data\nEnsure that the new annotation data conforms to the new annotation type, otherwise the call will fail.", "properties": { - "name": { - "type": "string" + "annotationType": { + "type": "object", + "required": [ + "set" + ], + "properties": { + "set": { + "$ref": "#/components/schemas/AnnotationType" + } + } }, - "query": { - "type": "string" + "data": { + "type": "object", + "required": [ + "set" + ], + "properties": { + "set": { + "$ref": "#/components/schemas/AnnotationData" + } + } }, - "destination": { - "description": "Destination data type.", - "oneOf": [ - { - "$ref": "#/components/schemas/AssetCentricDataSource" - }, - { - "$ref": "#/components/schemas/DataModelSource" + "status": { + "type": "object", + "required": [ + "set" + ], + "properties": { + "set": { + "$ref": "#/components/schemas/Status" + } + } + } + }, + "example": { + "data": { + "set": { + "assetRef": { + "externalId": "abc" }, - { - "$ref": "#/components/schemas/ViewDataSource" + "symbolRegion": { + "xMin": 0.1, + "xMax": 0.2, + "yMin": 0.1, + "yMax": 0.2 }, - { - "$ref": "#/components/schemas/RawDataSource" + "textRegion": { + "xMin": 0.4, + "xMax": 0.5, + "yMin": 0.4, + "yMax": 0.5 }, - { - "$ref": "#/components/schemas/SequenceRowDataSource" - } - ] + "pageNumber": 43 + } + } + } + }, + "AnnotatedResourceType": { + "type": "string", + "description": "The annotated CDF resource type. Files as well as 3d-Models are supported.", + "enum": [ + "file", + "threedmodel" + ], + "example": "file" + }, + "AnnotatedResourceId": { + "description": "The internal ID of the annotated resource.", + "allOf": [ + { + "$ref": "#/components/schemas/CogniteInternalId" + } + ], + "example": 1337 + }, + "Application": { + "type": "string", + "description": "The application name or identifier. This is neither checked nor enforced.", + "example": "cognite-vision", + "minLength": 1, + "maxLength": 255 + }, + "User": { + "type": "string", + "description": "A username, or email, or name. This is not checked nor enforced. If the value is null, it means the\nannotation was created by a service.", + "nullable": true, + "example": "john.doe@cognite.com", + "minLength": 1, + "maxLength": 255 + }, + "SemanticVersion": { + "type": "string", + "description": "A version number in the SemVer sense. See [semver.org](https://semver.org/) for the specification.", + "example": "1.2.1", + "minLength": 1, + "maxLength": 255 + }, + "AnnotationId": { + "allOf": [ + { + "$ref": "#/components/schemas/CogniteInternalId" + } + ], + "description": "Server-generated identifier for the annotation", + "example": 4096 + }, + "AnnotationType": { + "type": "string", + "description": "The type of the annotation. This uniquely decides what the structure of the `data` block will be.", + "enum": [ + "pointcloud.BoundingVolume", + "images.Classification", + "forms.Detection", + "documents.ExtractedText", + "diagrams.FileLink", + "isoplan.IsoPlanAnnotation", + "diagrams.Junction", + "images.KeypointCollection", + "diagrams.Line", + "images.ObjectDetection", + "images.TextRegion", + "diagrams.UnhandledSymbolObject", + "diagrams.UnhandledTextObject", + "diagrams.AssetLink", + "diagrams.InstanceLink", + "images.AssetLink", + "images.InstanceLink" + ], + "example": "pointcloud.BoundingVolume" + }, + "AnnotationData": { + "description": "The annotation information. The format of this object is decided by and validated against the `annotationType`\nattribute.", + "oneOf": [ + { + "$ref": "#/components/schemas/Annotations.BoundingVolume" }, - "conflictMode": { - "$ref": "#/components/schemas/ConflictMode" + { + "$ref": "#/components/schemas/Annotations.Classification" }, - "isPublic": { - "type": "boolean" + { + "$ref": "#/components/schemas/Annotations.Detection" }, - "sourceOidcCredentials": { - "$ref": "#/components/schemas/FlatOidcCredentials" + { + "$ref": "#/components/schemas/Annotations.ExtractedText" }, - "destinationOidcCredentials": { - "$ref": "#/components/schemas/FlatOidcCredentials" + { + "$ref": "#/components/schemas/Annotations.FileLink" }, - "sourceNonce": { - "$ref": "#/components/schemas/NonceCredentials" + { + "$ref": "#/components/schemas/Annotations.IsoPlanAnnotation" }, - "destinationNonce": { - "$ref": "#/components/schemas/NonceCredentials" + { + "$ref": "#/components/schemas/Annotations.Junction" }, - "externalId": { - "type": "string", - "description": "The external ID provided by the client. Must be unique for the resource type." + { + "$ref": "#/components/schemas/Annotations.KeypointCollection" }, - "ignoreNullFields": { - "type": "boolean", - "description": "How NULL values are handled on updates: ignore or setNull." + { + "$ref": "#/components/schemas/Annotations.Line" }, - "dataSetId": { - "type": "integer", - "format": "int64" + { + "$ref": "#/components/schemas/Annotations.ObjectDetection" }, - "tags": { - "type": "array", - "items": { - "type": "string", - "minLength": 1, - "maxLength": 35 - }, - "description": "List of tags for the Transformation.", - "minItems": 1, - "maxItems": 5 - } - } - }, - "TransformationFilter": { - "type": "object", - "properties": { - "isPublic": { - "type": "boolean", - "description": "Whether public transformations should be included in the results. The default is true." + { + "$ref": "#/components/schemas/Annotations.TextRegion" }, - "nameRegex": { - "type": "string", - "description": "Regex expression to match the transformation name." + { + "$ref": "#/components/schemas/Annotations.UnhandledSymbolObject" }, - "queryRegex": { - "type": "string", - "description": "Regex expression to match the transformation query." + { + "$ref": "#/components/schemas/Annotations.UnhandledTextObject" }, - "destinationType": { - "type": "string", - "description": "Transformation destination resource name to filter by." + { + "$ref": "#/components/schemas/Annotations.cogmono__annotation_types__diagrams__AssetLink" }, - "conflictMode": { - "$ref": "#/components/schemas/ConflictMode" + { + "$ref": "#/components/schemas/Annotations.cogmono__annotation_types__diagrams__InstanceLink" }, - "hasBlockedError": { - "type": "boolean", - "description": "Whether only the blocked transformations should be included in the results." + { + "$ref": "#/components/schemas/Annotations.cogmono__annotation_types__images__AssetLink" }, - "cdfProjectName": { - "type": "string", - "description": "Project name to filter by configured source and destination project." + { + "$ref": "#/components/schemas/Annotations.cogmono__annotation_types__images__InstanceLink" + } + ], + "example": { + "assetRef": { + "externalId": "abc" }, - "createdTime": { - "$ref": "#/components/schemas/MinMax" + "symbolRegion": { + "xMin": 0.1, + "xMax": 0.2, + "yMin": 0.1, + "yMax": 0.2 }, - "lastUpdatedTime": { - "$ref": "#/components/schemas/MinMax" + "textRegion": { + "xMin": 0.2, + "xMax": 0.3, + "yMin": 0.2, + "yMax": 0.3 }, - "dataSetIds": { - "type": "array", - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/CogniteExtId" - }, - { - "$ref": "#/components/schemas/CogniteIntId" - } - ] - }, - "description": "Return only transformations in the specified data sets." + "pageNumber": 43 + } + }, + "ResourceReference": { + "type": "object", + "description": "A reference to another CDF resource. _Either_ the internal _or_ the external ID _must_ be provided (not both).", + "properties": { + "id": { + "allOf": [ + { + "$ref": "#/components/schemas/CogniteInternalId" + } + ], + "example": null }, - "tags": { - "description": "Return the transformations depending on the tags filter provided.", - "oneOf": [ + "externalId": { + "allOf": [ { - "$ref": "#/components/schemas/ContainsAny" + "$ref": "#/components/schemas/CogniteExternalId" } - ] + ], + "example": "abc-1066" } } }, - "TransformationJobStatus": { - "type": "string", - "description": "Status of the job at the request time.", - "enum": [ - "Completed", - "Created", - "Failed", - "Running" - ] - }, - "TransformationRead": { - "required": [ - "id", - "name", - "query", - "destination", - "conflictMode", - "isPublic", - "createdTime", - "lastUpdatedTime", - "owner", - "ownerIsCurrentUser", - "hasSourceOidcCredentials", - "hasDestinationOidcCredentials", - "externalId", - "ignoreNullFields" - ], + "ReverseLookupResourceReference": { "type": "object", + "description": "A reference to another CDF resource. Internal and external ID are both provided if available.", "properties": { "id": { - "type": "integer", - "description": "Transformation ID.", - "format": "int32" - }, - "name": { - "type": "string", - "description": "Transformation name." - }, - "query": { - "type": "string", - "description": "Transformation query." - }, - "destination": { - "description": "Destination data type.", - "oneOf": [ - { - "$ref": "#/components/schemas/AssetCentricDataSource" - }, - { - "$ref": "#/components/schemas/DataModelSource" - }, - { - "$ref": "#/components/schemas/ViewDataSource" - }, + "allOf": [ { - "$ref": "#/components/schemas/RawDataSource" - }, + "$ref": "#/components/schemas/CogniteInternalId" + } + ], + "example": 123 + }, + "externalId": { + "allOf": [ { - "$ref": "#/components/schemas/SequenceRowDataSource" + "$ref": "#/components/schemas/CogniteExternalId" } + ], + "example": "abc-1066" + } + } + }, + "Status": { + "type": "string", + "description": "The status of the annotation", + "enum": [ + "suggested", + "approved", + "rejected" + ], + "example": "approved" + }, + "StrCursor": { + "type": "string", + "description": "A cursor pointing to another page of results", + "minLength": 1, + "maxLength": 255, + "example": "MzE1NjAwMDcxNzQ0ODI5" + }, + "Annotations.AssetRef": { + "additionalProperties": false, + "description": "A reference to an asset. Either the internal ID or the external ID must be provided (exactly one).", + "oneOf": [ + { + "required": [ + "id" ] }, - "conflictMode": { - "$ref": "#/components/schemas/ConflictMode" - }, - "isPublic": { - "type": "boolean", - "description": "Indicates if the transformation is visible to all in project or only to the owner." - }, - "blocked": { - "$ref": "#/components/schemas/TransformBlockedInfo" - }, - "createdTime": { - "type": "integer", - "description": "Time when the transformation was created: The number of milliseconds since 00:00:00 Thursday, 1 January 1970, Coordinated Universal Time (UTC), minus leap seconds.", - "format": "int64" - }, - "lastUpdatedTime": { - "type": "integer", - "description": "Time when the transformation was last updated: The number of milliseconds since 00:00:00 Thursday, 1 January 1970, Coordinated Universal Time (UTC), minus leap seconds.", - "format": "int64" - }, - "owner": { - "type": "string", - "description": "Owner of the transformation: requester's identity." + { + "required": [ + "externalId" + ] + } + ], + "properties": { + "id": { + "default": null, + "description": "The internal ID of the referenced resource", + "type": "integer" }, - "ownerIsCurrentUser": { - "type": "boolean", - "description": "Indicates if the transformation belongs to the current user." + "externalId": { + "default": null, + "description": "The external ID of the referenced resource", + "maxLength": 256, + "type": "string" + } + }, + "title": "primitives.references.AssetRef", + "type": "object" + }, + "Annotations.AttributesMixin": { + "additionalProperties": false, + "description": "Mixin that can be used to add attributes to a thing", + "properties": { + "attributes": { + "additionalProperties": { + "discriminator": { + "mapping": { + "boolean": "#/components/schemas/Annotations.Boolean", + "numerical": "#/components/schemas/Annotations.Numerical" + }, + "propertyName": "type" + }, + "oneOf": [ + { + "$ref": "#/components/schemas/Annotations.Boolean" + }, + { + "$ref": "#/components/schemas/Annotations.Numerical" + } + ] + }, + "default": null, + "description": "Additional attributes data for a compound.", + "type": "object" + } + }, + "title": "primitives.attributes.AttributesMixin", + "type": "object" + }, + "Annotations.Boolean": { + "additionalProperties": false, + "description": "The boolean value of something", + "properties": { + "description": { + "default": null, + "description": "The description of a primitive", + "maxLength": 500, + "type": "string" }, - "hasSourceOidcCredentials": { - "type": "boolean", - "description": "Indicates if the transformation is configured with a source oidc credentials set." + "type": { + "const": "boolean", + "enum": [ + "boolean" + ], + "type": "string" }, - "hasDestinationOidcCredentials": { - "type": "boolean", - "description": "Indicates if the transformation is configured with a destination oidc credentials set." + "value": { + "description": "The boolean value", + "type": "boolean" + } + }, + "required": [ + "type", + "value" + ], + "title": "primitives.attributes.Boolean", + "type": "object" + }, + "Annotations.BoundingBox": { + "additionalProperties": false, + "description": "A plain rectangle", + "properties": { + "confidence": { + "default": null, + "description": "The confidence score for the primitive. It should be between 0 and 1.", + "maximum": 1, + "minimum": 0, + "type": "number" }, - "sourceSession": { - "$ref": "#/components/schemas/SessionInfo" + "xMin": { + "description": "Minimum abscissa of the bounding box (left edge). Must be strictly less than x_max.", + "maximum": 1, + "minimum": 0, + "type": "number" }, - "destinationSession": { - "$ref": "#/components/schemas/SessionInfo" + "xMax": { + "description": "Maximum abscissa of the bounding box (right edge). Must be strictly more than x_min.", + "maximum": 1, + "minimum": 0, + "type": "number" }, - "lastFinishedJob": { - "$ref": "#/components/schemas/JobRead" + "yMin": { + "description": "Minimum ordinate of the bounding box (bottom edge). Must be strictly less than y_max.", + "maximum": 1, + "minimum": 0, + "type": "number" }, - "runningJob": { - "$ref": "#/components/schemas/JobRead" + "yMax": { + "description": "Maximum ordinate of the bounding box (top edge). Must be strictly more than y_min.", + "maximum": 1, + "minimum": 0, + "type": "number" + } + }, + "required": [ + "xMin", + "xMax", + "yMin", + "yMax" + ], + "title": "primitives.geometry2d.BoundingBox", + "type": "object" + }, + "Annotations.Box": { + "additionalProperties": false, + "description": "A box in 3D space, defined by a 4x4 row-major homogeneous transformation matrix that rotates,\ntranslates and scales a box centered at the origin to its location and orientation in 3D space.\nThe box that is transformed is the axis-aligned cube spanning the volume between\nthe points (-1, -1, -1) and (1, 1, 1).", + "properties": { + "label": { + "default": null, + "description": "The label describing what type of object it is", + "maxLength": 128, + "minLength": 1, + "type": "string" }, - "schedule": { - "$ref": "#/components/schemas/Schedule" + "confidence": { + "default": null, + "description": "The confidence score for the primitive. It should be between 0 and 1.", + "maximum": 1, + "minimum": 0, + "type": "number" }, - "externalId": { - "type": "string", - "description": "The external ID provided by the client. Must be unique for the resource type." + "matrix": { + "description": "The homogeneous transformation matrix", + "items": { + "type": "number" + }, + "maxItems": 16, + "minItems": 16, + "type": "array" + } + }, + "required": [ + "matrix" + ], + "title": "primitives.geometry3d.Box", + "type": "object" + }, + "Annotations.ConfidenceMixin": { + "additionalProperties": false, + "description": "Mixin that can be used to add confidence score to a thing", + "properties": { + "confidence": { + "default": null, + "description": "The confidence score for the primitive. It should be between 0 and 1.", + "maximum": 1, + "minimum": 0, + "type": "number" + } + }, + "title": "primitives.confidence.ConfidenceMixin", + "type": "object" + }, + "Annotations.Cylinder": { + "additionalProperties": false, + "description": "A cylinder in 3D space, defined by the centers of the two end surfaces and the radius.", + "properties": { + "label": { + "default": null, + "description": "The label describing what type of object it is", + "maxLength": 128, + "minLength": 1, + "type": "string" }, - "ignoreNullFields": { - "type": "boolean", - "description": "How NULL values are handled on updates: ignore or setNull." + "confidence": { + "default": null, + "description": "The confidence score for the primitive. It should be between 0 and 1.", + "maximum": 1, + "minimum": 0, + "type": "number" }, - "dataSetId": { - "type": "integer", - "description": "Gets the transformation dataset id which can be used for access control.", - "format": "int64" + "centerA": { + "description": "The center of the first cap.", + "items": { + "type": "number" + }, + "maxItems": 3, + "minItems": 3, + "type": "array" }, - "tags": { - "type": "array", + "centerB": { + "description": "The center of the second cap.", "items": { - "type": "string", - "minLength": 1, - "maxLength": 35 + "type": "number" }, - "description": "List of tags for the Transformation.", - "minItems": 1, - "maxItems": 5 + "maxItems": 3, + "minItems": 3, + "type": "array" + }, + "radius": { + "description": "The radius of the cylinder.", + "minimum": 0, + "type": "number" } - } - }, - "TransformationRunWithExternalId": { + }, "required": [ - "externalId" + "centerA", + "centerB", + "radius" ], - "type": "object", + "title": "primitives.geometry3d.Cylinder", + "type": "object" + }, + "Annotations.DescriptionMixin": { + "additionalProperties": false, + "description": "Mixin that can be used to add a description to a thing", "properties": { - "externalId": { + "description": { + "default": null, + "description": "The description of a primitive", + "maxLength": 500, "type": "string" - }, - "nonce": { - "$ref": "#/components/schemas/NonceCredentials" } - } + }, + "title": "primitives.description.DescriptionMixin", + "type": "object" }, - "TransformationRunWithId": { - "required": [ - "id" + "Annotations.FileRef": { + "additionalProperties": false, + "description": "A reference to a file. Either the internal ID or the external ID must be provided (exactly one).", + "oneOf": [ + { + "required": [ + "id" + ] + }, + { + "required": [ + "externalId" + ] + } ], - "type": "object", "properties": { "id": { - "type": "integer", - "format": "int32" + "default": null, + "description": "The internal ID of the referenced resource", + "type": "integer" }, - "nonce": { - "$ref": "#/components/schemas/NonceCredentials" + "externalId": { + "default": null, + "description": "The external ID of the referenced resource", + "maxLength": 256, + "type": "string" } - } + }, + "title": "primitives.references.FileRef", + "type": "object" }, - "TransformationUpdate": { - "type": "object", + "Annotations.GeometryMixin": { + "additionalProperties": false, + "description": "A mixin that can be used to add a geometry to a thing.\nA is geometry represented by exactly *one of* ` bounding_box`, `polygon` and\n`polyline` which, respectively, represents a BoundingBox, Polygon and\nPolyLine.", "properties": { - "name": { + "boundingBox": { "allOf": [ { - "$ref": "#/components/schemas/SetStringField" + "$ref": "#/components/schemas/Annotations.BoundingBox" } ], - "description": "Set a new value for the transformation name." + "default": null }, - "externalId": { + "polygon": { "allOf": [ { - "$ref": "#/components/schemas/SetExternalId" + "$ref": "#/components/schemas/Annotations.Polygon" } ], - "description": "Set a new value for the transformation External ID." - }, - "destination": { - "$ref": "#/components/schemas/SetValue_DataSource" - }, - "conflictMode": { - "$ref": "#/components/schemas/SetValue_ConflictMode" + "default": null }, - "query": { + "polyline": { "allOf": [ { - "$ref": "#/components/schemas/SetStringField" + "$ref": "#/components/schemas/Annotations.PolyLine" } ], - "description": "Set a new value for the transformation query." - }, - "sourceOidcCredentials": { - "description": "Set a new value for the transformation source OIDC credentials, or remove it.", - "oneOf": [ - { - "$ref": "#/components/schemas/SetNull_FlatOidcCredentialsUpdate" + "default": null + } + }, + "title": "primitives.geometry2d.GeometryMixin", + "type": "object" + }, + "Annotations.InstanceRef": { + "additionalProperties": false, + "description": "A reference to an DMS instance,\ndefined by the instance itself and the sources (views)\nthat define how the data should be interpreted", + "properties": { + "sources": { + "description": "References to views", + "items": { + "discriminator": { + "mapping": { + "view": "#/components/schemas/Annotations.View" + }, + "propertyName": "type" }, - { - "$ref": "#/components/schemas/SetValue_FlatOidcCredentialsUpdate" - } - ] + "oneOf": [ + { + "$ref": "#/components/schemas/Annotations.View" + } + ] + }, + "maxItems": 10, + "type": "array" }, - "destinationOidcCredentials": { - "description": "Set a new value for the transformation destination OIDC credentials, or remove it.", - "oneOf": [ - { - "$ref": "#/components/schemas/SetNull_FlatOidcCredentialsUpdate" - }, - { - "$ref": "#/components/schemas/SetValue_FlatOidcCredentialsUpdate" - } - ] + "instanceType": { + "description": "The type of instance, an edge or a node.", + "enum": [ + "node", + "edge" + ], + "type": "string" }, - "sourceNonce": { - "description": "Bind to a new source CDF session, or remove it", - "oneOf": [ - { - "$ref": "#/components/schemas/SetNull_NonceCredentials" - }, - { - "$ref": "#/components/schemas/SetValue_NonceCredentials" - } - ] + "externalId": { + "description": "External id of the instance", + "maxLength": 255, + "minLength": 1, + "pattern": "^[^\\x00]{1,255}$", + "type": "string" }, - "destinationNonce": { - "description": "Bind to a new destination session, or remove it", - "oneOf": [ - { - "$ref": "#/components/schemas/SetNull_NonceCredentials" + "space": { + "description": "Id of the space that the instance belongs to", + "maxLength": 43, + "minLength": 1, + "pattern": "^[a-zA-Z][a-zA-Z0-9_-]{0,41}[a-zA-Z0-9]?$", + "type": "string" + } + }, + "required": [ + "sources", + "instanceType", + "externalId", + "space" + ], + "title": "primitives.references.InstanceRef", + "type": "object" + }, + "Annotations.Keypoint": { + "additionalProperties": false, + "description": "A point attached with additional information such as a confidence value and\nvarious attribute(s).", + "properties": { + "attributes": { + "additionalProperties": { + "discriminator": { + "mapping": { + "boolean": "#/components/schemas/Annotations.Boolean", + "numerical": "#/components/schemas/Annotations.Numerical" + }, + "propertyName": "type" }, - { - "$ref": "#/components/schemas/SetValue_NonceCredentials" - } - ] + "oneOf": [ + { + "$ref": "#/components/schemas/Annotations.Boolean" + }, + { + "$ref": "#/components/schemas/Annotations.Numerical" + } + ] + }, + "default": null, + "description": "Additional attributes data for a compound.", + "type": "object" }, - "isPublic": { + "confidence": { + "default": null, + "description": "The confidence score for the primitive. It should be between 0 and 1.", + "maximum": 1, + "minimum": 0, + "type": "number" + }, + "point": { "allOf": [ { - "$ref": "#/components/schemas/SetBooleanField" + "$ref": "#/components/schemas/Annotations.Point" } ], - "description": "Set a new value for the transformation isPublic flag to change who can see the transformation." + "description": "The position of the keypoint" + } + }, + "required": [ + "point" + ], + "title": "primitives.geometry2d.Keypoint", + "type": "object" + }, + "Annotations.Numerical": { + "additionalProperties": false, + "description": "The numerical value of something", + "properties": { + "description": { + "default": null, + "description": "The description of a primitive", + "maxLength": 500, + "type": "string" }, - "ignoreNullFields": { - "allOf": [ - { - "$ref": "#/components/schemas/SetBooleanField" - } + "type": { + "const": "numerical", + "enum": [ + "numerical" ], - "description": "Set a new value for the transformation ignoreNullFields flag to change to change how nulls are handled on updates." - }, - "dataSetId": { - "description": "Set a new value for the transformation dataset id which is used for access control.", - "oneOf": [ - { - "$ref": "#/components/schemas/SetNull_Long" - }, - { - "$ref": "#/components/schemas/SetValue_Long" - } - ] + "type": "string" }, - "tags": { - "description": "List of tags for the Transformation.", - "oneOf": [ + "value": { + "anyOf": [ { - "$ref": "#/components/schemas/SetValue_Seq_String" + "type": "integer" }, { - "$ref": "#/components/schemas/UpdateArray_String" + "type": "number" } - ] + ], + "description": "The numerical value" } - } + }, + "required": [ + "type", + "value" + ], + "title": "primitives.attributes.Numerical", + "type": "object" }, - "UpdateArray_String": { - "type": "object", + "Annotations.OptionalLabelMixin": { + "additionalProperties": false, + "description": "Mixin that can be used to add an *optional* label string to a thing", "properties": { - "add": { - "type": "array", - "items": { - "type": "string", - "minLength": 1, - "maxLength": 35 - }, - "description": "List of tags to add to the Transformation." - }, - "remove": { - "type": "array", - "items": { - "type": "string", - "minLength": 1, - "maxLength": 35 - }, - "description": "List of tags to remove from the Transformation." + "label": { + "default": null, + "description": "The label describing what type of object it is", + "maxLength": 128, + "minLength": 1, + "type": "string" } - } + }, + "title": "primitives.label.OptionalLabelMixin", + "type": "object" }, - "UpdateItemWithExternalId_ScheduleUpdate": { - "required": [ - "update", - "externalId" - ], - "type": "object", + "Annotations.PageInformationMixin": { + "additionalProperties": false, + "description": "Mixin that can be used to add page number information", "properties": { - "update": { - "$ref": "#/components/schemas/ScheduleUpdate" - }, - "externalId": { - "type": "string", - "description": "The external ID provided by the client. Must be unique for the resource type." + "pageNumber": { + "default": 1, + "description": "The number of the page on which this annotation is located. The first page has number 1.", + "maximum": 100000, + "minimum": 1, + "type": "integer" } - } + }, + "title": "primitives.page.PageInformationMixin", + "type": "object" }, - "UpdateItemWithExternalId_TransformationUpdate": { - "required": [ - "update", - "externalId" - ], - "type": "object", + "Annotations.Point": { + "additionalProperties": false, + "description": "Point in a 2D-Cartesian coordinate system with origin at the top-left corner of the page", "properties": { - "update": { - "$ref": "#/components/schemas/TransformationUpdate" + "confidence": { + "default": null, + "description": "The confidence score for the primitive. It should be between 0 and 1.", + "maximum": 1, + "minimum": 0, + "type": "number" }, - "externalId": { - "type": "string", - "description": "The external ID provided by the client. Must be unique for the resource type." + "x": { + "description": "The abscissa of the point in a coordinate system with origin at the top-left corner of the page. Normalized in (0,1).", + "maximum": 1, + "minimum": 0, + "type": "number" + }, + "y": { + "description": "The ordinate of the point in a coordinate system with origin at the top-left corner of the page. Normalized in (0,1).", + "maximum": 1, + "minimum": 0, + "type": "number" } - } - }, - "UpdateItemWithId_ScheduleUpdate": { + }, "required": [ - "update", - "id" + "x", + "y" ], - "type": "object", + "title": "primitives.geometry2d.Point", + "type": "object" + }, + "Annotations.PolyLine": { + "additionalProperties": false, + "description": "A polygonal chain consisting of _n_ vertices", "properties": { - "update": { - "$ref": "#/components/schemas/ScheduleUpdate" + "confidence": { + "default": null, + "description": "The confidence score for the primitive. It should be between 0 and 1.", + "maximum": 1, + "minimum": 0, + "type": "number" }, - "id": { - "type": "integer", - "description": "A server-generated ID for the object.", - "format": "int32" + "vertices": { + "items": { + "$ref": "#/components/schemas/Annotations.Point" + }, + "maxItems": 1000, + "minItems": 2, + "type": "array" } - } - }, - "UpdateItemWithId_TransformationUpdate": { + }, "required": [ - "update", - "id" + "vertices" ], - "type": "object", + "title": "primitives.geometry2d.PolyLine", + "type": "object" + }, + "Annotations.Polygon": { + "additionalProperties": false, + "description": "A _closed_ polygon represented by _n_ vertices. In other words, we assume\nthat the first and last vertex are connected.", "properties": { - "update": { - "$ref": "#/components/schemas/TransformationUpdate" + "confidence": { + "default": null, + "description": "The confidence score for the primitive. It should be between 0 and 1.", + "maximum": 1, + "minimum": 0, + "type": "number" }, - "id": { - "type": "integer", - "description": "A server-generated ID for the object.", - "format": "int32" + "vertices": { + "items": { + "$ref": "#/components/schemas/Annotations.Point" + }, + "maxItems": 1000, + "minItems": 3, + "type": "array" } - } - }, - "ViewInfo": { + }, "required": [ - "space", - "externalId", - "version" + "vertices" ], - "type": "object", + "title": "primitives.geometry2d.Polygon", + "type": "object" + }, + "Annotations.RequiredLabelMixin": { + "additionalProperties": false, + "description": "Mixin that can be used to add a *required* label string to a thing", "properties": { - "space": { - "type": "string", - "description": "Space of the View" - }, - "externalId": { - "type": "string", - "description": "External ID of the View" - }, - "version": { - "type": "string", - "description": "Version of the View" + "label": { + "description": "The label describing what type of object it is", + "maxLength": 128, + "minLength": 1, + "type": "string" } }, - "description": "Target view info" - }, - "DataModelInfo": { "required": [ - "space", - "externalId", - "version", - "destinationType" + "label" ], - "type": "object", + "title": "primitives.label.RequiredLabelMixin", + "type": "object" + }, + "Annotations.SizeAndClassType": { + "additionalProperties": false, + "description": "Store the dimension, units and class of a given annotation", "properties": { - "space": { - "type": "string", - "description": "Space of the Data Model" - }, - "externalId": { - "type": "string", - "description": "External ID of the Data Model" - }, - "version": { - "type": "string", - "description": "Version of the Data Model" + "size": { + "default": null, + "description": "The size of the valve or spade", + "type": "number" }, - "destinationType": { - "type": "string", - "description": "External ID of the type(view) in the data model" + "unit": { + "default": null, + "description": "The units of the size (mm/inches)", + "maxLength": 128, + "minLength": 1, + "type": "string" }, - "destinationRelationshipFromType": { - "type": "string", - "description": "Property Identifier of the connection definition in destinationType" + "classType": { + "default": null, + "description": "The class type of the valve or spade", + "maxLength": 128, + "minLength": 1, + "type": "string" } }, - "description": "Target data model info" + "title": "primitives.dimensions.SizeAndClassType", + "type": "object" }, - "AnnotationsV2SuggestSchema": { - "type": "object", - "required": [ - "annotatedResourceType", - "annotatedResourceId", - "annotationType", - "creatingApp", - "creatingAppVersion", - "creatingUser", - "data" - ], + "Annotations.View": { + "additionalProperties": false, + "description": "Defines a DMS source (e.g. view)", "properties": { - "annotatedResourceType": { - "$ref": "#/components/schemas/AnnotatedResourceType" - }, - "annotatedResourceId": { - "$ref": "#/components/schemas/AnnotatedResourceId" - }, - "annotationType": { - "$ref": "#/components/schemas/AnnotationType" - }, - "creatingApp": { - "$ref": "#/components/schemas/Application" - }, - "creatingAppVersion": { - "$ref": "#/components/schemas/SemanticVersion" + "type": { + "const": "view", + "enum": [ + "view" + ], + "type": "string" }, - "creatingUser": { - "$ref": "#/components/schemas/User" + "space": { + "description": "Id of the space that the view belongs to", + "maxLength": 43, + "minLength": 1, + "pattern": "^[a-zA-Z][a-zA-Z0-9_-]{0,41}[a-zA-Z0-9]?$", + "type": "string" }, - "data": { - "$ref": "#/components/schemas/AnnotationData" - } - } - }, - "AnnotationsV2CreateSchema": { - "allOf": [ - { - "$ref": "#/components/schemas/AnnotationsV2SuggestSchema" + "externalId": { + "description": "External id of the view", + "maxLength": 255, + "minLength": 1, + "pattern": "^[a-zA-Z]([a-zA-Z0-9_]{0,253}[a-zA-Z0-9])?$", + "type": "string" }, - { - "type": "object", - "required": [ - "status" - ], - "properties": { - "status": { - "$ref": "#/components/schemas/Status" - } - } + "version": { + "description": "Version of the view", + "maxLength": 43, + "minLength": 1, + "pattern": "^[a-zA-Z0-9]([a-zA-Z0-9_-]{0,41}[a-zA-Z0-9])?$", + "type": "string" } - ] - }, - "AnnotationsV2ListResponseSchema": { - "type": "object", + }, "required": [ - "items" + "type", + "space", + "externalId", + "version" ], - "properties": { - "items": { - "type": "array", - "description": "A list of annotations", - "items": { - "$ref": "#/components/schemas/AnnotationsV2ResponseSchema" - } - } - } + "title": "primitives.references.View", + "type": "object" }, - "AnnotationsV2ResponseSchema": { - "type": "object", - "required": [ - "id", - "createdTime", - "lastUpdatedTime", - "annotatedResourceType", - "annotationType", - "creatingApp", - "creatingAppVersion", - "creatingUser", - "data", - "status" - ], + "Annotations.cogmono__annotation_types__primitives__geometry2d__Geometry": { + "additionalProperties": false, + "description": "A geometry represented by exactly *one of* ` bounding_box`, `polygon` and\n`polyline` which, respectively, represents a BoundingBox, Polygon and\nPolyLine.", "properties": { - "id": { - "$ref": "#/components/schemas/AnnotationId" - }, - "createdTime": { - "$ref": "#/components/schemas/EpochTimestamp" - }, - "lastUpdatedTime": { - "$ref": "#/components/schemas/EpochTimestamp" - }, - "annotatedResourceType": { - "$ref": "#/components/schemas/AnnotatedResourceType" - }, - "annotatedResourceId": { - "$ref": "#/components/schemas/AnnotatedResourceId" - }, - "annotationType": { - "$ref": "#/components/schemas/AnnotationType" - }, - "creatingApp": { - "$ref": "#/components/schemas/Application" - }, - "creatingAppVersion": { - "$ref": "#/components/schemas/SemanticVersion" - }, - "creatingUser": { - "$ref": "#/components/schemas/User" + "boundingBox": { + "allOf": [ + { + "$ref": "#/components/schemas/Annotations.BoundingBox" + } + ], + "default": null }, - "data": { - "$ref": "#/components/schemas/AnnotationData" + "polygon": { + "allOf": [ + { + "$ref": "#/components/schemas/Annotations.Polygon" + } + ], + "default": null }, - "status": { - "$ref": "#/components/schemas/Status" + "polyline": { + "allOf": [ + { + "$ref": "#/components/schemas/Annotations.PolyLine" + } + ], + "default": null } - } + }, + "title": "primitives.geometry2d.Geometry", + "type": "object" }, - "AnnotationsV2ReverseLookupResponseSchema": { - "type": "object", - "required": [ - "items", - "annotatedResourceType" - ], + "Annotations.cogmono__annotation_types__primitives__geometry3d__Geometry": { + "additionalProperties": false, + "description": "A 3D geometry model represented by exactly *one of* `cylinder` and `box`.", "properties": { - "items": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ReverseLookupResourceReference" - } - }, - "nextCursor": { + "cylinder": { "allOf": [ { - "$ref": "#/components/schemas/StrCursor" + "$ref": "#/components/schemas/Annotations.Cylinder" } ], - "nullable": true, - "type": "string", - "example": null + "default": null }, - "annotatedResourceType": { - "$ref": "#/components/schemas/AnnotatedResourceType" - } - } - }, - "AnnotationsV2ReferenceSchema": { - "type": "object", - "description": "A reference to an existing annotation", - "required": [ - "id" - ], - "properties": { - "id": { - "$ref": "#/components/schemas/AnnotationId" + "box": { + "allOf": [ + { + "$ref": "#/components/schemas/Annotations.Box" + } + ], + "default": null } - } - }, - "AnnotationsV2FilterSchema": { - "type": "object", - "description": "A filter to apply on annotations", - "required": [ - "annotatedResourceType", - "annotatedResourceIds" - ], - "properties": { - "annotatedResourceType": { - "$ref": "#/components/schemas/AnnotatedResourceType" - }, - "annotatedResourceIds": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ResourceReference" - }, - "minItems": 1, - "maxItems": 1000 - }, - "annotationType": { - "$ref": "#/components/schemas/AnnotationType" - }, - "creatingApp": { - "$ref": "#/components/schemas/Application" - }, - "creatingAppVersion": { - "$ref": "#/components/schemas/SemanticVersion" - }, - "creatingUser": { - "$ref": "#/components/schemas/User" + }, + "title": "primitives.geometry3d.Geometry", + "type": "object" + }, + "Annotations.BoundingVolume": { + "additionalProperties": false, + "description": "A bounding volume represents a region in a point cloud", + "properties": { + "label": { + "default": null, + "description": "The label describing what type of object it is", + "maxLength": 128, + "minLength": 1, + "type": "string" }, - "status": { - "$ref": "#/components/schemas/Status" + "confidence": { + "default": null, + "description": "The confidence score for the primitive. It should be between 0 and 1.", + "maximum": 1, + "minimum": 0, + "type": "number" }, - "data": { - "description": "Filter annotations by their data keys and values (case-sensitive). Concretely, by providing this field, we check for all annotations that contains the data filter as a subset.\nIf `annotationType` is not specified, the data filter will applied across all annotation types.", - "example": { - "label": "cat", - "fileRef": { - "externalId": "abc" + "assetRef": { + "allOf": [ + { + "$ref": "#/components/schemas/Annotations.AssetRef" } + ], + "default": null, + "description": "The asset this annotation is pointing to" + }, + "region": { + "description": "The region of the annotation defined by a list of geometry primitives (cylinder and box).", + "items": { + "$ref": "#/components/schemas/Annotations.cogmono__annotation_types__primitives__geometry3d__Geometry" }, - "type": "object" + "maxItems": 1000, + "minItems": 1, + "type": "array" } }, - "example": { - "annotatedResourceType": "file", - "annotatedResourceIds": [ - { - "id": 1066 - }, - { - "id": 1067 - } - ], - "status": "approved", - "data": { - "label": "cat" - } - } + "required": [ + "region" + ], + "title": "pointcloud.BoundingVolume", + "type": "object" }, - "AnnotationsV2ReverseLookupFilterSchema": { - "type": "object", - "description": "A filter for reverse lookups", + "Annotations.Classification": { + "additionalProperties": false, + "description": "Models an image classification represented by a label, and optionally a\nconfidence value.", + "properties": { + "label": { + "description": "The label describing what type of object it is", + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "confidence": { + "default": null, + "description": "The confidence score for the primitive. It should be between 0 and 1.", + "maximum": 1, + "minimum": 0, + "type": "number" + } + }, "required": [ - "annotatedResourceType" + "label" ], + "title": "images.Classification", + "type": "object" + }, + "Annotations.Detection": { + "additionalProperties": false, + "description": "Represents a detection of a field value in a form.\nA field is identified by a field_name, optionally component_name and component_type if the field belongs to a subcomponent.\nThe bounding_box indicates the position of the detection. The content of the field is given by the value, and optionally\nan unnormalized_value and the unit.", "properties": { - "annotatedResourceType": { - "$ref": "#/components/schemas/AnnotatedResourceType" + "confidence": { + "default": null, + "description": "The confidence score for the primitive. It should be between 0 and 1.", + "maximum": 1, + "minimum": 0, + "type": "number" }, - "annotationType": { - "$ref": "#/components/schemas/AnnotationType" + "pageNumber": { + "default": 1, + "description": "The number of the page on which this annotation is located. The first page has number 1.", + "maximum": 100000, + "minimum": 1, + "type": "integer" }, - "creatingApp": { - "$ref": "#/components/schemas/Application" + "boundingBox": { + "allOf": [ + { + "$ref": "#/components/schemas/Annotations.BoundingBox" + } + ], + "description": "Bounding box of the detection area" }, - "creatingAppVersion": { - "$ref": "#/components/schemas/SemanticVersion" + "componentType": { + "default": null, + "description": "Type of subcomponent that the detection belongs to", + "maxLength": 128, + "minLength": 1, + "type": "string" }, - "creatingUser": { - "$ref": "#/components/schemas/User" + "componentName": { + "default": null, + "description": "Name of subcomponent that the detection belongs to", + "maxLength": 128, + "minLength": 1, + "type": "string" }, - "status": { - "$ref": "#/components/schemas/Status" + "fieldName": { + "description": "Name of field that has been detected", + "maxLength": 128, + "minLength": 1, + "type": "string" }, - "data": { - "description": "Filter annotations by their data keys and values (case-sensitive). Concretely, by providing this field, we check for all annotations that contains the data filter as a subset.\nIf `annotationType` is not specified, the data filter will applied across all annotation types.", - "example": { - "label": "cat", - "fileRef": { - "externalId": "abc" - } - }, - "type": "object" + "value": { + "description": "The value that has been detected", + "maxLength": 128, + "type": "string" + }, + "valueUnnormalized": { + "default": null, + "description": "The value that has been detected, before normalization. Optional.", + "maxLength": 128, + "type": "string" + }, + "unit": { + "default": null, + "description": "The unit of the value field. Optional.", + "maxLength": 128, + "minLength": 1, + "type": "string" } }, - "example": { - "annotatedResourceType": "file", - "status": "approved", - "data": { - "label": "cat", - "fileRef": { - "externalId": "abc" - } - } - } - }, - "AnnotationsV2CursoredListResponseSchema": { - "type": "object", - "description": "A cursored list of existing annotations", "required": [ - "items" + "boundingBox", + "fieldName", + "value" ], + "title": "forms.Detection", + "type": "object" + }, + "Annotations.ExtractedText": { + "additionalProperties": false, + "description": "Represents text extracted from a document. Annotations of this type are low-level and not specific to any domain.", "properties": { - "items": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AnnotationsV2ResponseSchema" - } + "pageNumber": { + "default": 1, + "description": "The number of the page on which this annotation is located. The first page has number 1.", + "maximum": 100000, + "minimum": 1, + "type": "integer" }, - "nextCursor": { + "textRegion": { "allOf": [ { - "$ref": "#/components/schemas/StrCursor" + "$ref": "#/components/schemas/Annotations.BoundingBox" } ], - "nullable": true, - "type": "string", - "example": null + "description": "The location of the extracted text" + }, + "extractedText": { + "description": "The extracted text", + "maxLength": 1024, + "minLength": 1, + "type": "string" } - } - }, - "AnnotationsV2UpdateItemSchema": { - "type": "object", - "description": "An update object to apply to an annotation", + }, "required": [ - "id", - "update" + "textRegion", + "extractedText" ], - "properties": { - "id": { - "$ref": "#/components/schemas/AnnotationId" - }, - "update": { - "$ref": "#/components/schemas/AnnotationsV2UpdateDataSchema" - } - } + "title": "documents.ExtractedText", + "type": "object" }, - "AnnotationsV2UpdateDataSchema": { - "type": "object", - "description": "Each fields represent a \"delta\" that will be applied onto the corresponding field of the original\nannotation.\n\n\n### Updating Annotation Type or Data\nEnsure that the new annotation data conforms to the new annotation type, otherwise the call will fail.", + "Annotations.FileLink": { + "additionalProperties": false, + "description": "Models a link to a CDF File referenced in an engineering diagram", "properties": { - "annotationType": { - "type": "object", - "required": [ - "set" - ], - "properties": { - "set": { - "$ref": "#/components/schemas/AnnotationType" - } - } + "description": { + "default": null, + "description": "The description of a primitive", + "maxLength": 500, + "type": "string" }, - "data": { - "type": "object", - "required": [ - "set" - ], - "properties": { - "set": { - "$ref": "#/components/schemas/AnnotationData" + "pageNumber": { + "default": 1, + "description": "The number of the page on which this annotation is located. The first page has number 1.", + "maximum": 100000, + "minimum": 1, + "type": "integer" + }, + "fileRef": { + "allOf": [ + { + "$ref": "#/components/schemas/Annotations.FileRef" } - } + ], + "description": "The file this annotation is pointing to" }, - "status": { - "type": "object", - "required": [ - "set" + "symbolRegion": { + "allOf": [ + { + "$ref": "#/components/schemas/Annotations.BoundingBox" + } ], - "properties": { - "set": { - "$ref": "#/components/schemas/Status" + "default": null, + "description": "The location of the symbol representing the file" + }, + "textRegion": { + "allOf": [ + { + "$ref": "#/components/schemas/Annotations.BoundingBox" } - } + ], + "description": "The location of the text mentioning the file" + }, + "text": { + "default": null, + "description": "The extracted text", + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "symbol": { + "default": null, + "description": "The symbol found in the file", + "maxLength": 128, + "minLength": 1, + "type": "string" } }, - "example": { - "data": { - "set": { - "assetRef": { - "externalId": "abc" - }, - "symbolRegion": { - "xMin": 0.1, - "xMax": 0.2, - "yMin": 0.1, - "yMax": 0.2 - }, - "textRegion": { - "xMin": 0.4, - "xMax": 0.5, - "yMin": 0.4, - "yMax": 0.5 - }, - "pageNumber": 43 - } - } - } - }, - "AnnotatedResourceType": { - "type": "string", - "description": "The annotated CDF resource type. Files as well as 3d-Models are supported.", - "enum": [ - "file", - "threedmodel" - ], - "example": "file" - }, - "AnnotatedResourceId": { - "description": "The internal ID of the annotated resource.", - "allOf": [ - { - "$ref": "#/components/schemas/CogniteInternalId" - } - ], - "example": 1337 - }, - "Application": { - "type": "string", - "description": "The application name or identifier. This is neither checked nor enforced.", - "example": "cognite-vision", - "minLength": 1, - "maxLength": 255 - }, - "User": { - "type": "string", - "description": "A username, or email, or name. This is not checked nor enforced. If the value is null, it means the\nannotation was created by a service.", - "nullable": true, - "example": "john.doe@cognite.com", - "minLength": 1, - "maxLength": 255 - }, - "SemanticVersion": { - "type": "string", - "description": "A version number in the SemVer sense. See [semver.org](https://semver.org/) for the specification.", - "example": "1.2.1", - "minLength": 1, - "maxLength": 255 - }, - "AnnotationId": { - "allOf": [ - { - "$ref": "#/components/schemas/CogniteInternalId" - } - ], - "description": "Server-generated identifier for the annotation", - "example": 4096 - }, - "AnnotationType": { - "type": "string", - "description": "The type of the annotation. This uniquely decides what the structure of the `data` block will be.", - "enum": [ - "pointcloud.BoundingVolume", - "images.Classification", - "forms.Detection", - "documents.ExtractedText", - "diagrams.FileLink", - "isoplan.IsoPlanAnnotation", - "diagrams.Junction", - "images.KeypointCollection", - "diagrams.Line", - "images.ObjectDetection", - "images.TextRegion", - "diagrams.UnhandledSymbolObject", - "diagrams.UnhandledTextObject", - "diagrams.AssetLink", - "diagrams.InstanceLink", - "images.AssetLink", - "images.InstanceLink" + "required": [ + "fileRef", + "textRegion" ], - "example": "pointcloud.BoundingVolume" + "title": "diagrams.FileLink", + "type": "object" }, - "AnnotationData": { - "description": "The annotation information. The format of this object is decided by and validated against the `annotationType`\nattribute.", - "oneOf": [ - { - "$ref": "#/components/schemas/Annotations.BoundingVolume" - }, - { - "$ref": "#/components/schemas/Annotations.Classification" - }, - { - "$ref": "#/components/schemas/Annotations.Detection" - }, - { - "$ref": "#/components/schemas/Annotations.ExtractedText" + "Annotations.IsoPlanAnnotation": { + "additionalProperties": false, + "description": "Model a custom link in a engineering diagram where it capture details from the texts and linked to assets when necessary", + "properties": { + "pageNumber": { + "default": 1, + "description": "The number of the page on which this annotation is located. The first page has number 1.", + "maximum": 100000, + "minimum": 1, + "type": "integer" }, - { - "$ref": "#/components/schemas/Annotations.FileLink" + "fileRef": { + "allOf": [ + { + "$ref": "#/components/schemas/Annotations.FileRef" + } + ], + "default": null, + "description": "The asset this annotation is pointing at. Store the id of the file assets to generate downloadable URL." }, - { - "$ref": "#/components/schemas/Annotations.IsoPlanAnnotation" + "text": { + "default": null, + "description": "The pattern identified by the detection API results.", + "maxLength": 128, + "minLength": 1, + "type": "string" }, - { - "$ref": "#/components/schemas/Annotations.Junction" + "textRegion": { + "allOf": [ + { + "$ref": "#/components/schemas/Annotations.BoundingBox" + } + ], + "default": null, + "description": "The location of the hotspot represented with a bounding box." }, - { - "$ref": "#/components/schemas/Annotations.KeypointCollection" + "indirectRelation": { + "default": null, + "description": "Relation connecting this hotspot to a tag in case the hotspot has no tag. E.g. 'second valve upstreams of'. This references the 'indirectExternalId'.", + "maxLength": 128, + "minLength": 1, + "type": "string" }, - { - "$ref": "#/components/schemas/Annotations.Line" + "indirectExternalId": { + "allOf": [ + { + "$ref": "#/components/schemas/Annotations.AssetRef" + } + ], + "default": null, + "description": "The indirectExternalId is the external id of the equipment used to identify the hotspot indirectly. Exa. this is the of ." }, - { - "$ref": "#/components/schemas/Annotations.ObjectDetection" + "lineExternalId": { + "allOf": [ + { + "$ref": "#/components/schemas/Annotations.AssetRef" + } + ], + "default": null, + "description": "The id of the Pipe that the hotspot belongs to." }, - { - "$ref": "#/components/schemas/Annotations.TextRegion" + "detail": { + "default": null, + "description": "Detail describing the equipment.", + "maxLength": 128, + "minLength": 1, + "type": "string" }, - { - "$ref": "#/components/schemas/Annotations.UnhandledSymbolObject" + "subDetail": { + "default": null, + "description": "Use to save the fluid code of pipes Exa. LO for Lube oil and etc.", + "maxLength": 128, + "minLength": 1, + "type": "string" }, - { - "$ref": "#/components/schemas/Annotations.UnhandledTextObject" + "sourceType": { + "default": null, + "description": "Use to identify whether the annotation is user created one or ditected via pipeline.", + "enum": [ + "pipeline", + "user" + ], + "type": "string" }, - { - "$ref": "#/components/schemas/Annotations.cognite__annotation_types__diagrams__AssetLink" + "linkedResourceInternalId": { + "default": null, + "description": "Stores Functional Locations' (FLOC) ID linked to the annotation.", + "type": "integer" }, - { - "$ref": "#/components/schemas/Annotations.cognite__annotation_types__diagrams__InstanceLink" + "linkedResourceExternalId": { + "default": null, + "description": "Stores Functional Locations (FLOC) external ID linked to the annotation.", + "maxLength": 128, + "minLength": 1, + "type": "string" }, - { - "$ref": "#/components/schemas/Annotations.cognite__annotation_types__images__AssetLink" + "linkedResourceType": { + "default": null, + "description": "Stores Functional Location (FLOC) type the annotation linked to.", + "enum": [ + "asset", + "file" + ], + "type": "string" }, - { - "$ref": "#/components/schemas/Annotations.cognite__annotation_types__images__InstanceLink" - } - ], - "example": { - "assetRef": { - "externalId": "abc" + "type": { + "default": null, + "description": "Type of equipment, valve, pump etc.", + "maxLength": 128, + "minLength": 1, + "type": "string" }, - "symbolRegion": { - "xMin": 0.1, - "xMax": 0.2, - "yMin": 0.1, - "yMax": 0.2 + "relativePosition": { + "default": null, + "description": "Indicate the relative position of an annotation.", + "maxLength": 128, + "minLength": 1, + "type": "string" }, - "textRegion": { - "xMin": 0.2, - "xMax": 0.3, - "yMin": 0.2, - "yMax": 0.3 + "revision": { + "default": null, + "description": "Keeps track of the modification to an annotation.", + "maxLength": 128, + "minLength": 1, + "type": "string" }, - "pageNumber": 43 - } - }, - "ResourceReference": { - "type": "object", - "description": "A reference to another CDF resource. _Either_ the internal _or_ the external ID _must_ be provided (not both).", - "properties": { - "id": { + "sizeAndClass": { "allOf": [ { - "$ref": "#/components/schemas/CogniteInternalId" + "$ref": "#/components/schemas/Annotations.SizeAndClassType" } ], - "example": null + "default": null, + "description": "Stores the dimensions of a valve or spade." }, - "externalId": { + "oldAnnotationId": { + "default": null, + "description": "Keep track of data link with old annotations.", + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "vertices": { "allOf": [ { - "$ref": "#/components/schemas/CogniteExternalId" + "$ref": "#/components/schemas/Annotations.PolyLine" } ], - "example": "abc-1066" + "default": null, + "description": "Stores the (x,y) coordinate pairs of a line or polyline." } - } + }, + "title": "isoplan.IsoPlanAnnotation", + "type": "object" }, - "ReverseLookupResourceReference": { - "type": "object", - "description": "A reference to another CDF resource. Internal and external ID are both provided if available.", + "Annotations.Junction": { + "additionalProperties": false, + "description": "Models a junction between lines in an engineering diagram", "properties": { - "id": { - "allOf": [ - { - "$ref": "#/components/schemas/CogniteInternalId" - } - ], - "example": 123 + "pageNumber": { + "default": 1, + "description": "The number of the page on which this annotation is located. The first page has number 1.", + "maximum": 100000, + "minimum": 1, + "type": "integer" }, - "externalId": { + "position": { "allOf": [ { - "$ref": "#/components/schemas/CogniteExternalId" + "$ref": "#/components/schemas/Annotations.Point" } ], - "example": "abc-1066" - } - } - }, - "Status": { - "type": "string", - "description": "The status of the annotation", - "enum": [ - "suggested", - "approved", - "rejected" - ], - "example": "approved" - }, - "StrCursor": { - "type": "string", - "description": "A cursor pointing to another page of results", - "minLength": 1, - "maxLength": 255, - "example": "MzE1NjAwMDcxNzQ0ODI5" - }, - "Annotations.AssetRef": { - "additionalProperties": false, - "description": "A reference to an asset. Either the internal ID or the external ID must be provided (exactly one).", - "oneOf": [ - { - "required": [ - "id" - ] - }, - { - "required": [ - "externalId" - ] - } - ], - "properties": { - "id": { - "default": null, - "description": "The internal ID of the referenced resource", - "type": "integer" - }, - "externalId": { - "default": null, - "description": "The external ID of the referenced resource", - "maxLength": 256, - "type": "string" + "description": "The point representing the junction" } }, - "title": "primitives.references.AssetRef", + "required": [ + "position" + ], + "title": "diagrams.Junction", "type": "object" }, - "Annotations.AttributesMixin": { + "Annotations.KeypointCollection": { "additionalProperties": false, - "description": "Mixin that can be used to add attributes to a thing", + "description": "Models a collection of keypoints represented by a label, a dictionary of\nkeypoints (mapping from a (unique) label name to a keypoint), and\noptionally a confidence value and an attributes dictionary.", "properties": { "attributes": { "additionalProperties": { @@ -53925,91 +62282,119 @@ "default": null, "description": "Additional attributes data for a compound.", "type": "object" + }, + "label": { + "description": "The label describing what type of object it is", + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "confidence": { + "default": null, + "description": "The confidence score for the primitive. It should be between 0 and 1.", + "maximum": 1, + "minimum": 0, + "type": "number" + }, + "keypoints": { + "additionalProperties": { + "$ref": "#/components/schemas/Annotations.Keypoint" + }, + "description": "The detected keypoints", + "type": "object" } }, - "title": "primitives.attributes.AttributesMixin", + "required": [ + "label", + "keypoints" + ], + "title": "images.KeypointCollection", "type": "object" }, - "Annotations.Boolean": { + "Annotations.Line": { "additionalProperties": false, - "description": "The boolean value of something", + "description": "Models a line in an engineering diagram", "properties": { - "description": { - "default": null, - "description": "The description of a primitive", - "maxLength": 500, + "label": { + "description": "The label describing what type of object it is", + "maxLength": 128, + "minLength": 1, "type": "string" }, - "type": { - "const": "boolean", - "enum": [ - "boolean" - ], - "type": "string" + "pageNumber": { + "default": 1, + "description": "The number of the page on which this annotation is located. The first page has number 1.", + "maximum": 100000, + "minimum": 1, + "type": "integer" }, - "value": { - "description": "The boolean value", - "type": "boolean" + "polyline": { + "allOf": [ + { + "$ref": "#/components/schemas/Annotations.PolyLine" + } + ], + "description": "The polyline representing the line" } }, "required": [ - "type", - "value" + "label", + "polyline" ], - "title": "primitives.attributes.Boolean", + "title": "diagrams.Line", "type": "object" }, - "Annotations.BoundingBox": { + "Annotations.ObjectDetection": { "additionalProperties": false, - "description": "A plain rectangle", + "description": "Models an image object detection represented by a label, a geometry, and\noptionally a confidence value.", "properties": { - "confidence": { + "attributes": { + "additionalProperties": { + "discriminator": { + "mapping": { + "boolean": "#/components/schemas/Annotations.Boolean", + "numerical": "#/components/schemas/Annotations.Numerical" + }, + "propertyName": "type" + }, + "oneOf": [ + { + "$ref": "#/components/schemas/Annotations.Boolean" + }, + { + "$ref": "#/components/schemas/Annotations.Numerical" + } + ] + }, "default": null, - "description": "The confidence score for the primitive. It should be between 0 and 1.", - "maximum": 1, - "minimum": 0, - "type": "number" + "description": "Additional attributes data for a compound.", + "type": "object" }, - "xMin": { - "description": "Minimum abscissa of the bounding box (left edge). Must be strictly less than x_max.", - "maximum": 1, - "minimum": 0, - "type": "number" + "boundingBox": { + "allOf": [ + { + "$ref": "#/components/schemas/Annotations.BoundingBox" + } + ], + "default": null }, - "xMax": { - "description": "Maximum abscissa of the bounding box (right edge). Must be strictly more than x_min.", - "maximum": 1, - "minimum": 0, - "type": "number" + "polygon": { + "allOf": [ + { + "$ref": "#/components/schemas/Annotations.Polygon" + } + ], + "default": null }, - "yMin": { - "description": "Minimum ordinate of the bounding box (bottom edge). Must be strictly less than y_max.", - "maximum": 1, - "minimum": 0, - "type": "number" + "polyline": { + "allOf": [ + { + "$ref": "#/components/schemas/Annotations.PolyLine" + } + ], + "default": null }, - "yMax": { - "description": "Maximum ordinate of the bounding box (top edge). Must be strictly more than y_min.", - "maximum": 1, - "minimum": 0, - "type": "number" - } - }, - "required": [ - "xMin", - "xMax", - "yMin", - "yMax" - ], - "title": "primitives.geometry2d.BoundingBox", - "type": "object" - }, - "Annotations.Box": { - "additionalProperties": false, - "description": "A box in 3D space, defined by a 4x4 row-major homogeneous transformation matrix that rotates,\ntranslates and scales a box centered at the origin to its location and orientation in 3D space.\nThe box that is transformed is the axis-aligned cube spanning the volume between\nthe points (-1, -1, -1) and (1, 1, 1).", - "properties": { "label": { - "default": null, "description": "The label describing what type of object it is", "maxLength": 128, "minLength": 1, @@ -54021,26 +62406,17 @@ "maximum": 1, "minimum": 0, "type": "number" - }, - "matrix": { - "description": "The homogeneous transformation matrix", - "items": { - "type": "number" - }, - "maxItems": 16, - "minItems": 16, - "type": "array" } }, "required": [ - "matrix" + "label" ], - "title": "primitives.geometry3d.Box", + "title": "images.ObjectDetection", "type": "object" }, - "Annotations.ConfidenceMixin": { + "Annotations.TextRegion": { "additionalProperties": false, - "description": "Mixin that can be used to add confidence score to a thing", + "description": "Models an extracted text region in an image", "properties": { "confidence": { "default": null, @@ -54048,218 +62424,290 @@ "maximum": 1, "minimum": 0, "type": "number" + }, + "text": { + "description": "The extracted text", + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "textRegion": { + "allOf": [ + { + "$ref": "#/components/schemas/Annotations.BoundingBox" + } + ], + "description": "The location of the extracted text" } }, - "title": "primitives.confidence.ConfidenceMixin", + "required": [ + "text", + "textRegion" + ], + "title": "images.TextRegion", "type": "object" }, - "Annotations.Cylinder": { + "Annotations.UnhandledSymbolObject": { "additionalProperties": false, - "description": "A cylinder in 3D space, defined by the centers of the two end surfaces and the radius.", + "description": "Models an extracted symbol region in an engineering diagram", "properties": { - "label": { + "description": { "default": null, - "description": "The label describing what type of object it is", - "maxLength": 128, - "minLength": 1, + "description": "The description of a primitive", + "maxLength": 500, "type": "string" }, - "confidence": { - "default": null, - "description": "The confidence score for the primitive. It should be between 0 and 1.", - "maximum": 1, - "minimum": 0, - "type": "number" - }, - "centerA": { - "description": "The center of the first cap.", - "items": { - "type": "number" - }, - "maxItems": 3, - "minItems": 3, - "type": "array" + "pageNumber": { + "default": 1, + "description": "The number of the page on which this annotation is located. The first page has number 1.", + "maximum": 100000, + "minimum": 1, + "type": "integer" }, - "centerB": { - "description": "The center of the second cap.", - "items": { - "type": "number" - }, - "maxItems": 3, - "minItems": 3, - "type": "array" + "symbolRegion": { + "allOf": [ + { + "$ref": "#/components/schemas/Annotations.BoundingBox" + } + ], + "description": "The location of the symbol" }, - "radius": { - "description": "The radius of the cylinder.", - "minimum": 0, - "type": "number" + "symbol": { + "description": "The symbol found in the file", + "maxLength": 128, + "minLength": 1, + "type": "string" } }, "required": [ - "centerA", - "centerB", - "radius" + "symbolRegion", + "symbol" ], - "title": "primitives.geometry3d.Cylinder", + "title": "diagrams.UnhandledSymbolObject", "type": "object" }, - "Annotations.DescriptionMixin": { + "Annotations.UnhandledTextObject": { "additionalProperties": false, - "description": "Mixin that can be used to add a description to a thing", + "description": "Models an extracted text region in an engineering diagram", "properties": { "description": { "default": null, "description": "The description of a primitive", "maxLength": 500, "type": "string" + }, + "pageNumber": { + "default": 1, + "description": "The number of the page on which this annotation is located. The first page has number 1.", + "maximum": 100000, + "minimum": 1, + "type": "integer" + }, + "textRegion": { + "allOf": [ + { + "$ref": "#/components/schemas/Annotations.BoundingBox" + } + ], + "description": "The location of the text" + }, + "text": { + "description": "The extracted text", + "maxLength": 128, + "minLength": 1, + "type": "string" } }, - "title": "primitives.description.DescriptionMixin", + "required": [ + "textRegion", + "text" + ], + "title": "diagrams.UnhandledTextObject", "type": "object" }, - "Annotations.FileRef": { + "Annotations.cogmono__annotation_types__diagrams__AssetLink": { "additionalProperties": false, - "description": "A reference to a file. Either the internal ID or the external ID must be provided (exactly one).", - "oneOf": [ - { - "required": [ - "id" - ] - }, - { - "required": [ - "externalId" - ] - } - ], + "description": "Models a link to a CDF Asset referenced in an engineering diagram", "properties": { - "id": { + "description": { "default": null, - "description": "The internal ID of the referenced resource", + "description": "The description of a primitive", + "maxLength": 500, + "type": "string" + }, + "pageNumber": { + "default": 1, + "description": "The number of the page on which this annotation is located. The first page has number 1.", + "maximum": 100000, + "minimum": 1, "type": "integer" }, - "externalId": { + "assetRef": { + "allOf": [ + { + "$ref": "#/components/schemas/Annotations.AssetRef" + } + ], + "description": "The asset this annotation is pointing to" + }, + "symbolRegion": { + "allOf": [ + { + "$ref": "#/components/schemas/Annotations.BoundingBox" + } + ], "default": null, - "description": "The external ID of the referenced resource", - "maxLength": 256, + "description": "The location of the symbol representing the asset" + }, + "textRegion": { + "allOf": [ + { + "$ref": "#/components/schemas/Annotations.BoundingBox" + } + ], + "description": "The location of the text mentioning the asset" + }, + "text": { + "default": null, + "description": "The extracted text", + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "symbol": { + "default": null, + "description": "The symbol representing the asset", + "maxLength": 128, + "minLength": 1, "type": "string" } }, - "title": "primitives.references.FileRef", + "required": [ + "assetRef", + "textRegion" + ], + "title": "diagrams.AssetLink", "type": "object" }, - "Annotations.GeometryMixin": { + "Annotations.cogmono__annotation_types__diagrams__InstanceLink": { "additionalProperties": false, - "description": "A mixin that can be used to add a geometry to a thing.\nA is geometry represented by exactly *one of* ` bounding_box`, `polygon` and\n`polyline` which, respectively, represents a BoundingBox, Polygon and\nPolyLine.", + "description": "Models a link to an FDM instance referenced in an engineering diagram", "properties": { - "boundingBox": { + "description": { + "default": null, + "description": "The description of a primitive", + "maxLength": 500, + "type": "string" + }, + "pageNumber": { + "default": 1, + "description": "The number of the page on which this annotation is located. The first page has number 1.", + "maximum": 100000, + "minimum": 1, + "type": "integer" + }, + "instanceRef": { "allOf": [ { - "$ref": "#/components/schemas/Annotations.BoundingBox" + "$ref": "#/components/schemas/Annotations.InstanceRef" } ], - "default": null + "description": "The FDM instance this annotation is pointing to" }, - "polygon": { + "symbolRegion": { "allOf": [ { - "$ref": "#/components/schemas/Annotations.Polygon" + "$ref": "#/components/schemas/Annotations.BoundingBox" } ], - "default": null + "default": null, + "description": "Optional location of a symbol" }, - "polyline": { + "symbol": { + "default": null, + "description": "The symbol found in the file", + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "text": { + "description": "The extracted text", + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "textRegion": { "allOf": [ { - "$ref": "#/components/schemas/Annotations.PolyLine" + "$ref": "#/components/schemas/Annotations.BoundingBox" } ], - "default": null + "description": "The location of the text mentioning the file" } }, - "title": "primitives.geometry2d.GeometryMixin", + "required": [ + "instanceRef", + "text", + "textRegion" + ], + "title": "diagrams.InstanceLink", "type": "object" }, - "Annotations.InstanceRef": { + "Annotations.cogmono__annotation_types__images__AssetLink": { "additionalProperties": false, - "description": "A reference to an DMS instance,\ndefined by the instance itself and the sources (views)\nthat define how the data should be interpreted", + "description": "Models a link to a CDF Asset referenced in an image", "properties": { - "sources": { - "description": "References to views", - "items": { - "discriminator": { - "mapping": { - "view": "#/components/schemas/Annotations.View" - }, - "propertyName": "type" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/Annotations.View" - } - ] - }, - "maxItems": 10, - "type": "array" + "confidence": { + "default": null, + "description": "The confidence score for the primitive. It should be between 0 and 1.", + "maximum": 1, + "minimum": 0, + "type": "number" }, - "instanceType": { - "description": "The type of instance, an edge or a node.", - "enum": [ - "node", - "edge" + "assetRef": { + "allOf": [ + { + "$ref": "#/components/schemas/Annotations.AssetRef" + } ], - "type": "string" + "description": "The asset this annotation is pointing to" }, - "externalId": { - "description": "External id of the instance", - "maxLength": 255, + "text": { + "description": "The extracted text", + "maxLength": 128, "minLength": 1, - "pattern": "^[^\\x00]{1,255}$", "type": "string" }, - "space": { - "description": "Id of the space that the instance belongs to", - "maxLength": 43, - "minLength": 1, - "pattern": "^[a-zA-Z][a-zA-Z0-9_-]{0,41}[a-zA-Z0-9]?$", - "type": "string" + "textRegion": { + "allOf": [ + { + "$ref": "#/components/schemas/Annotations.BoundingBox" + } + ], + "description": "The location of the text mentioning the asset" + }, + "objectRegion": { + "allOf": [ + { + "$ref": "#/components/schemas/Annotations.cogmono__annotation_types__primitives__geometry2d__Geometry" + } + ], + "default": null, + "description": "The region of the object representing the asset" } }, "required": [ - "sources", - "instanceType", - "externalId", - "space" + "assetRef", + "text", + "textRegion" ], - "title": "primitives.references.InstanceRef", + "title": "images.AssetLink", "type": "object" }, - "Annotations.Keypoint": { + "Annotations.cogmono__annotation_types__images__InstanceLink": { "additionalProperties": false, - "description": "A point attached with additional information such as a confidence value and\nvarious attribute(s).", + "description": "Models a link to an FDM instance referenced in an image", "properties": { - "attributes": { - "additionalProperties": { - "discriminator": { - "mapping": { - "boolean": "#/components/schemas/Annotations.Boolean", - "numerical": "#/components/schemas/Annotations.Numerical" - }, - "propertyName": "type" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/Annotations.Boolean" - }, - { - "$ref": "#/components/schemas/Annotations.Numerical" - } - ] - }, - "default": null, - "description": "Additional attributes data for a compound.", - "type": "object" - }, "confidence": { "default": null, "description": "The confidence score for the primitive. It should be between 0 and 1.", @@ -54267,2709 +62715,3213 @@ "minimum": 0, "type": "number" }, - "point": { + "instanceRef": { "allOf": [ { - "$ref": "#/components/schemas/Annotations.Point" + "$ref": "#/components/schemas/Annotations.InstanceRef" } ], - "description": "The position of the keypoint" + "description": "The FDM instance this annotation is pointing to" + }, + "text": { + "description": "The extracted text", + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "textRegion": { + "allOf": [ + { + "$ref": "#/components/schemas/Annotations.BoundingBox" + } + ], + "description": "The location of the text mentioning the FDM instance" } }, "required": [ - "point" + "instanceRef", + "text", + "textRegion" ], - "title": "primitives.geometry2d.Keypoint", + "title": "images.InstanceLink", "type": "object" }, - "Annotations.Numerical": { - "additionalProperties": false, - "description": "The numerical value of something", + "BatchDownloadRequestSeismic": { + "type": "object", + "required": [ + "items" + ], "properties": { - "description": { - "default": null, - "description": "The description of a primitive", - "maxLength": 500, - "type": "string" + "items": { + "type": "array", + "description": "The list of seismic objects to include in the ZIP archive, specified by internal id.", + "items": { + "$ref": "#/components/schemas/CogniteInternalId" + } + } + } + }, + "BatchDownloadRequestFilter": { + "type": "object", + "properties": { + "surveyId": { + "type": "integer", + "minimum": 1, + "maximum": 9007199254740991, + "format": "int64", + "description": "A survey's internal ID. All seismic objects included will be part of this survey." }, - "type": { - "const": "numerical", - "enum": [ - "numerical" + "partitionId": { + "type": "integer", + "minimum": 1, + "maximum": 9007199254740991, + "format": "int64", + "description": "A partition's internal ID. All seismic objects included will be part of this partition." + }, + "metadataFilter": { + "type": "object", + "description": "All seismic objects included will have metadata that is a superset of the specified metadata filter.", + "additionalProperties": { + "type": "string" + } + } + } + }, + "UserIdentifier": { + "type": "object", + "required": [ + "userIdentifier" + ], + "properties": { + "userIdentifier": { + "type": "string", + "example": "abcd" + } + } + }, + "UserProfileItem": { + "type": "object", + "required": [ + "userIdentifier", + "lastUpdatedTime" + ], + "properties": { + "userIdentifier": { + "type": "string", + "description": "Uniquely identifies the principal the profile is associated with.\nThis property is _guaranteed_ to be immutable.\n", + "nullable": false, + "example": "abcd" + }, + "givenName": { + "type": "string", + "description": "The user's first name.", + "nullable": true, + "example": "Jane" + }, + "surname": { + "type": "string", + "description": "The user's last name.", + "nullable": true, + "example": "Doe" + }, + "email": { + "type": "string", + "description": "The user's email address (if any). The email address is is returned directly from\nthe identity provider and not guaranteed to be verified.\nNote that the email is mutable and can be updated in the identity provider. It should\n_not_ be used to uniquely identify as a user. Use the `userIdentifier` property instead.\n", + "nullable": true, + "example": "jane.doe@example.com" + }, + "displayName": { + "type": "string", + "description": "The display name for the user.", + "nullable": true, + "example": "Jane Doe" + }, + "jobTitle": { + "type": "string", + "description": "The user's job title.", + "nullable": true, + "example": "Software Engineer" + }, + "identityType": { + "$ref": "#/components/schemas/IdentityType" + }, + "lastUpdatedTime": { + "$ref": "#/components/schemas/EpochTimestamp" + } + } + }, + "UserProfilesByIdsRequest": { + "description": "Array of user identifiers", + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserIdentifier" + } + } + } + }, + "UserProfilesSearchRequest": { + "type": "object", + "properties": { + "search": { + "type": "object", + "properties": { + "name": { + "description": "Prefix search on name.", + "type": "string" + } + } + }, + "limit": { + "description": "<- Limits the maximum number of results to be returned by single request. The default is 25.", + "type": "integer", + "format": "int32", + "minimum": 1, + "maximum": 1000, + "default": 25 + } + } + }, + "UserProfilesListResponse": { + "type": "object", + "required": [ + "items" + ], + "properties": { + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserProfileItem" + } + }, + "nextCursor": { + "type": "string", + "description": "Cursor to get the next page of results (if available)." + } + } + }, + "UserProfilesByIdsResponse": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserProfileItem" + } + } + } + }, + "UserProfilesSearchResponse": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserProfileItem" + } + } + } + }, + "UserProfilesErrorResponse": { + "required": [ + "error" + ], + "type": "object", + "properties": { + "error": { + "required": [ + "code", + "message" ], - "type": "string" + "type": "object", + "properties": { + "code": { + "type": "integer", + "description": "HTTP status code." + }, + "message": { + "type": "string", + "description": "Error message." + }, + "missing": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserIdentifier" + }, + "description": "List of lookup objects that do not match any results." + }, + "duplicated": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserIdentifier" + }, + "description": "List of objects that are not unique." + } + } + } + } + }, + "UserProfilesNotFoundResponse": { + "required": [ + "error" + ], + "type": "object", + "properties": { + "error": { + "required": [ + "code", + "message" + ], + "type": "object", + "properties": { + "code": { + "type": "integer", + "description": "HTTP status code." + }, + "message": { + "type": "string", + "description": "Error message." + } + } + } + } + }, + "IdentityType": { + "description": "The identity type field indicates the type of principal.\n- `USER`: Human user.\n- `SERVICE_PRINCIPAL`: Service account.\n- `INTERNAL_SERVICE`: Internal CDF service.\n", + "type": "string", + "enum": [ + "USER", + "SERVICE_PRINCIPAL", + "INTERNAL_SERVICE" + ] + }, + "IdentityTypeFilter": { + "description": "The identity type filter field indicates the type of principal the request should be filtered to show.\nIf no value is specified, the default value is `USER`.\n- `ALL`: All types of principals.\n- `USER`: Human user.\n- `SERVICE_PRINCIPAL`: Service account.\n- `INTERNAL_SERVICE`: Internal CDF service.\n", + "type": "string", + "enum": [ + "ALL", + "USER", + "SERVICE_PRINCIPAL", + "INTERNAL_SERVICE" + ] + }, + "UserListResponse": { + "type": "object", + "required": [ + "items" + ], + "properties": { + "items": { + "type": "array", + "maxItems": 1000, + "items": { + "$ref": "#/components/schemas/OrgUser" + } }, - "value": { - "anyOf": [ + "nextCursor": { + "allOf": [ { - "type": "integer" + "description": { + "$ref": "#/components/schemas/Cursor/description" + } }, { - "type": "number" + "$ref": "#/components/schemas/Cursor/properties/cursor" } - ], - "description": "The numerical value" + ] } - }, + } + }, + "OrgUser": { + "type": "object", "required": [ - "type", - "value" + "id", + "pictureUrl" ], - "title": "primitives.attributes.Numerical", - "type": "object" - }, - "Annotations.OptionalLabelMixin": { - "additionalProperties": false, - "description": "Mixin that can be used to add an *optional* label string to a thing", "properties": { - "label": { - "default": null, - "description": "The label describing what type of object it is", - "maxLength": 128, - "minLength": 1, - "type": "string" + "id": { + "$ref": "#/components/schemas/UserId" + }, + "email": { + "type": "string", + "format": "email" + }, + "name": { + "type": "string", + "example": "John N. Doe" + }, + "givenName": { + "type": "string", + "example": "John" + }, + "middleName": { + "type": "string", + "example": "N." + }, + "familyName": { + "type": "string", + "example": "Doe" + }, + "pictureUrl": { + "type": "string", + "format": "url", + "example": "https://example.com/picture.png" } - }, - "title": "primitives.label.OptionalLabelMixin", - "type": "object" + } }, - "Annotations.PageInformationMixin": { - "additionalProperties": false, - "description": "Mixin that can be used to add page number information", - "properties": { - "pageNumber": { - "default": 1, - "description": "The number of the page on which this annotation is located. The first page has number 1.", - "maximum": 100000, - "minimum": 1, - "type": "integer" - } - }, - "title": "primitives.page.PageInformationMixin", - "type": "object" + "UserId": { + "type": "string", + "description": "The ID of an organization user", + "minLength": 22, + "maxLength": 22, + "example": "-user-string-id-aBc123", + "pattern": "^[-_a-zA-Z0-9]{22}$" }, - "Annotations.Point": { - "additionalProperties": false, - "description": "Point in a 2D-Cartesian coordinate system with origin at the top-left corner of the page", + "WorkflowView": { + "title": "Workflow", + "type": "object", "properties": { - "confidence": { - "default": null, - "description": "The confidence score for the primitive. It should be between 0 and 1.", - "maximum": 1, - "minimum": 0, - "type": "number" + "externalId": { + "$ref": "#/components/schemas/WorkflowExternalId" }, - "x": { - "description": "The abscissa of the point in a coordinate system with origin at the top-left corner of the page. Normalized in (0,1).", - "maximum": 1, - "minimum": 0, - "type": "number" + "description": { + "type": "string", + "maxLength": 500 }, - "y": { - "description": "The ordinate of the point in a coordinate system with origin at the top-left corner of the page. Normalized in (0,1).", - "maximum": 1, - "minimum": 0, - "type": "number" + "createdTime": { + "$ref": "#/components/schemas/EpochTimestamp" + }, + "lastUpdatedTime": { + "$ref": "#/components/schemas/EpochTimestamp" } }, "required": [ - "x", - "y" - ], - "title": "primitives.geometry2d.Point", - "type": "object" + "externalId", + "createdTime", + "lastUpdatedTime" + ] }, - "Annotations.PolyLine": { - "additionalProperties": false, - "description": "A polygonal chain consisting of _n_ vertices", + "WorkflowDefinition": { + "title": "Workflow Definition", + "type": "object", "properties": { - "confidence": { - "default": null, - "description": "The confidence score for the primitive. It should be between 0 and 1.", - "maximum": 1, - "minimum": 0, - "type": "number" + "description": { + "type": "string", + "maxLength": 500 }, - "vertices": { + "tasks": { + "type": "array", + "maxItems": 100, "items": { - "$ref": "#/components/schemas/Annotations.Point" - }, - "maxItems": 1000, - "minItems": 2, - "type": "array" + "$ref": "#/components/schemas/TaskDefinition" + } } }, "required": [ - "vertices" - ], - "title": "primitives.geometry2d.PolyLine", - "type": "object" + "tasks" + ] }, - "Annotations.Polygon": { - "additionalProperties": false, - "description": "A _closed_ polygon represented by _n_ vertices. In other words, we assume\nthat the first and last vertex are connected.", + "TaskDefinition": { + "title": "Task Definition", + "type": "object", "properties": { - "confidence": { - "default": null, - "description": "The confidence score for the primitive. It should be between 0 and 1.", - "maximum": 1, + "externalId": { + "$ref": "#/components/schemas/CogniteExternalId" + }, + "type": { + "$ref": "#/components/schemas/TaskType" + }, + "name": { + "type": "string", + "maxLength": 255, + "description": "Readable name meant for use in UIs" + }, + "description": { + "type": "string", + "maxLength": 500, + "description": "Description of the intention of the task" + }, + "parameters": { + "oneOf": [ + { + "$ref": "#/components/schemas/FunctionTaskParameters" + }, + { + "$ref": "#/components/schemas/TransformationTaskParameters" + }, + { + "$ref": "#/components/schemas/CdfTaskParameters" + }, + { + "$ref": "#/components/schemas/DynamicTaskParameters" + }, + { + "$ref": "#/components/schemas/SubworkflowTaskParameters" + } + ] + }, + "retries": { + "type": "number", + "default": 3, "minimum": 0, - "type": "number" + "maximum": 10, + "description": "Number of times to retry the task if it fails. If set to 0, the task will not be retried. The behavior for timeouts and retries is defined by the `onFailure` parameter, refer to it for more information." }, - "vertices": { + "timeout": { + "type": "number", + "default": 3600, + "minimum": 100, + "maximum": 43200, + "description": "Timeout in seconds. After this time, the task will be marked as `TIMED_OUT`. By default, the task won't be retried upon timeout. Use the `onFailure` parameter to change this behavior." + }, + "onFailure": { + "type": "string", + "enum": [ + "abortWorkflow", + "skipTask" + ], + "default": "abortWorkflow", + "description": "Defines the policy to handle failures and timeouts.\n- `skipTask`: For both failures and timeouts, it will retry until the retries are exhausted. After that, the Task is marked as COMPLETED_WITH_ERRORS and the subsequent tasks are executed.\n- `abortWorkflow`:\n - In case of failures, retries will be performed until exhausted, after which the task is marked as FAILED and the Workflow is marked the same.\n - In the event of a timeout, no retries are undertaken; the task is marked as TIMED_OUT and the Workflow is marked as FAILED.\n" + }, + "dependsOn": { + "type": "array", "items": { - "$ref": "#/components/schemas/Annotations.Point" + "$ref": "#/components/schemas/TaskDepends" }, - "maxItems": 1000, - "minItems": 3, - "type": "array" + "minItems": 0, + "maxItems": 100, + "description": "The tasks that must be completed before this task can be executed." } }, "required": [ - "vertices" - ], - "title": "primitives.geometry2d.Polygon", - "type": "object" + "externalId", + "type", + "parameters" + ] }, - "Annotations.RequiredLabelMixin": { - "additionalProperties": false, - "description": "Mixin that can be used to add a *required* label string to a thing", + "TaskDepends": { + "type": "object", "properties": { - "label": { - "description": "The label describing what type of object it is", - "maxLength": 128, - "minLength": 1, - "type": "string" + "externalId": { + "$ref": "#/components/schemas/CogniteExternalId" } - }, - "required": [ - "label" - ], - "title": "primitives.label.RequiredLabelMixin", - "type": "object" + } }, - "Annotations.SizeAndClassType": { - "additionalProperties": false, - "description": "Store the dimension, units and class of a given annotation", - "properties": { - "size": { - "default": null, - "description": "The size of the valve or spade", - "type": "number" - }, - "unit": { - "default": null, - "description": "The units of the size (mm/inches)", - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "classType": { - "default": null, - "description": "The class type of the valve or spade", - "maxLength": 128, - "minLength": 1, - "type": "string" - } - }, - "title": "primitives.dimensions.SizeAndClassType", - "type": "object" + "TaskType": { + "type": "string", + "enum": [ + "function", + "transformation", + "cdf", + "dynamic", + "subworkflow", + "simulator" + ] }, - "Annotations.View": { - "additionalProperties": false, - "description": "Defines a DMS source (e.g. view)", + "WorkflowExecution": { + "title": "Workflow Execution", + "type": "object", "properties": { - "type": { - "const": "view", - "enum": [ - "view" - ], - "type": "string" + "id": { + "$ref": "#/components/schemas/WorkflowExecutionId" }, - "space": { - "description": "Id of the space that the view belongs to", - "maxLength": 43, - "minLength": 1, - "pattern": "^[a-zA-Z][a-zA-Z0-9_-]{0,41}[a-zA-Z0-9]?$", - "type": "string" + "workflowExternalId": { + "$ref": "#/components/schemas/WorkflowExternalId" }, - "externalId": { - "description": "External id of the view", - "maxLength": 255, - "minLength": 1, - "pattern": "^[a-zA-Z]([a-zA-Z0-9_]{0,253}[a-zA-Z0-9])?$", - "type": "string" + "workflowDefinition": { + "$ref": "#/components/schemas/WorkflowDefinitionResponse" }, "version": { - "description": "Version of the view", - "maxLength": 43, - "minLength": 1, - "pattern": "^[a-zA-Z0-9]([a-zA-Z0-9_-]{0,41}[a-zA-Z0-9])?$", - "type": "string" + "$ref": "#/components/schemas/Version" + }, + "status": { + "$ref": "#/components/schemas/WorkflowStatus" + }, + "engineExecutionId": { + "$ref": "#/components/schemas/EngineExecutionId" + }, + "executedTasks": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TaskExecution" + } + }, + "input": { + "$ref": "#/components/schemas/ExecutionInput" + }, + "metadata": { + "$ref": "#/components/schemas/metadata" } }, "required": [ - "type", - "space", - "externalId", - "version" - ], - "title": "primitives.references.View", - "type": "object" + "id", + "workflowExternalId", + "workflowDefinition", + "status", + "engineExecutionId", + "createdTime", + "executedTasks", + "metadata" + ] }, - "Annotations.cognite__annotation_types__primitives__geometry2d__Geometry": { - "additionalProperties": false, - "description": "A geometry represented by exactly *one of* ` bounding_box`, `polygon` and\n`polyline` which, respectively, represents a BoundingBox, Polygon and\nPolyLine.", + "TransformationTaskParameters": { + "title": "Transformation Task Parameters", + "type": "object", "properties": { - "boundingBox": { - "allOf": [ - { - "$ref": "#/components/schemas/Annotations.BoundingBox" - } - ], - "default": null - }, - "polygon": { - "allOf": [ - { - "$ref": "#/components/schemas/Annotations.Polygon" - } - ], - "default": null - }, - "polyline": { - "allOf": [ - { - "$ref": "#/components/schemas/Annotations.PolyLine" + "transformation": { + "type": "object", + "description": "Parameters for the CDF Transformation task type.", + "properties": { + "externalId": { + "description": "The external id of the Transformation in the project.", + "oneOf": [ + { + "$ref": "#/components/schemas/CogniteExternalId" + }, + { + "$ref": "#/components/schemas/Reference" + } + ] + }, + "concurrencyPolicy": { + "type": "string", + "enum": [ + "fail", + "waitForCurrent", + "restartAfterCurrent" + ], + "default": "fail", + "description": "Determines the behavior of the task if the Transformation is already running.\n- fail: The task fails if another instance of the Transformation is currently running.\n- waitForCurrent: The task will pause and wait for the already running Transformation to complete. Once completed, the task is completed. This mode is useful for preventing redundant Transformation runs.\n- restartAfterCurrent: The task waits for the ongoing Transformation to finish. After completion, the task restarts the Transformation. This mode ensures that the most recent data can be used by following tasks.\n" } - ], - "default": null + }, + "required": [ + "externalId" + ] } - }, - "title": "primitives.geometry2d.Geometry", - "type": "object" + } }, - "Annotations.cognite__annotation_types__primitives__geometry3d__Geometry": { - "additionalProperties": false, - "description": "A 3D geometry model represented by exactly *one of* `cylinder` and `box`.", + "FunctionTaskParameters": { + "title": "Function Task Parameters", + "type": "object", + "description": "Parameters for the Cognite Function task type.", "properties": { - "cylinder": { - "allOf": [ - { - "$ref": "#/components/schemas/Annotations.Cylinder" + "function": { + "type": "object", + "properties": { + "externalId": { + "description": "The external id of the Cognite Function in the project.", + "oneOf": [ + { + "$ref": "#/components/schemas/CogniteExternalId" + }, + { + "$ref": "#/components/schemas/Reference" + } + ] + }, + "data": { + "description": "Input data that will be passed to the Cognite Function. Limited to 100KB in size.", + "oneOf": [ + { + "type": "object", + "example": { + "key1": "value1", + "key2": "value2" + }, + "maxLength": 100000 + }, + { + "$ref": "#/components/schemas/Reference" + } + ] } - ], - "default": null + }, + "required": [ + "externalId" + ] }, - "box": { - "allOf": [ - { - "$ref": "#/components/schemas/Annotations.Box" - } - ], - "default": null + "isAsyncComplete": { + "type": "boolean", + "default": false, + "description": "Defines if the execution of the task should be completed asynchronously.\n\n - If `false`, the status of the task will be set to `COMPLETED` when the Cognite Function call completes successfully.\\\n - If `true`, the task status will remain `IN_PROGRESS` even when the Cognite Function call completes successfully.\\\n It will then wait for an external process to update the task status directly using the task update endpoint.\\\n The task id required for the callback to update the task status is included in the input data of the Function with key \"cogniteOrchestrationTaskId\"." } - }, - "title": "primitives.geometry3d.Geometry", - "type": "object" + } }, - "Annotations.BoundingVolume": { - "additionalProperties": false, - "description": "A bounding volume represents a region in a point cloud", + "CdfTaskParameters": { + "title": "CDF Task Parameters", + "type": "object", + "description": "Parameters for the CDF Request task type, which can be used to make a request to any CDF API.", "properties": { - "label": { - "default": null, - "description": "The label describing what type of object it is", - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "confidence": { - "default": null, - "description": "The confidence score for the primitive. It should be between 0 and 1.", - "maximum": 1, - "minimum": 0, - "type": "number" - }, - "assetRef": { - "allOf": [ - { - "$ref": "#/components/schemas/Annotations.AssetRef" - } - ], - "default": null, - "description": "The asset this annotation is pointing to" - }, - "region": { - "description": "The region of the annotation defined by a list of geometry primitives (cylinder and box).", - "items": { - "$ref": "#/components/schemas/Annotations.cognite__annotation_types__primitives__geometry3d__Geometry" + "cdfRequest": { + "type": "object", + "properties": { + "resourcePath": { + "description": "The path of the request. The path should be prefixed by `{cluster}.cognitedata.com/api/v1/project/{project}` based on the relevant cluster and project.\n\nExample: to list TimeSeries, the resourcePath would be `{cluster}.cognitedata.com/api/v1/project/{project}/timeseries/list`.\n", + "oneOf": [ + { + "type": "string", + "maxLength": 128 + }, + { + "$ref": "#/components/schemas/Reference" + } + ] + }, + "queryParameters": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string", + "maxLength": 50 + }, + "maxItems": 5 + }, + { + "$ref": "#/components/schemas/Reference" + } + ] + }, + "method": { + "oneOf": [ + { + "type": "string", + "enum": [ + "POST", + "GET", + "PUT" + ] + }, + { + "$ref": "#/components/schemas/Reference" + } + ] + }, + "body": { + "description": "The body of the request. Limited to 100KB in size.", + "oneOf": [ + { + "type": "object", + "maxLength": 100000 + }, + { + "$ref": "#/components/schemas/Reference" + } + ] + }, + "requestTimeoutInMillis": { + "oneOf": [ + { + "type": "number", + "default": 10000, + "minimum": 100 + }, + { + "$ref": "#/components/schemas/Reference" + } + ] + } }, - "maxItems": 1000, - "minItems": 1, - "type": "array" + "required": [ + "resourcePath", + "method" + ] } - }, - "required": [ - "region" - ], - "title": "pointcloud.BoundingVolume", - "type": "object" + } }, - "Annotations.Classification": { - "additionalProperties": false, - "description": "Models an image classification represented by a label, and optionally a\nconfidence value.", + "DynamicTaskParameters": { + "title": "Dynamic Task Parameters", + "type": "object", + "description": "Dynamic tasks allow the dynamic creation of additional tasks during a workflow execution.\n\nThere are two things needed to execute a dynamic task.\n- A list of task definitions (similar to the way tasks are defined in the workflow definition when creating a workflow version).\n- A workflow task prior to the dynamic task that outputs the above list\n", "properties": { - "label": { - "description": "The label describing what type of object it is", - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "confidence": { - "default": null, - "description": "The confidence score for the primitive. It should be between 0 and 1.", - "maximum": 1, - "minimum": 0, - "type": "number" + "dynamic": { + "type": "object", + "description": "Tasks should reference a list of task definitions, defined exactly like they are during version creation.", + "properties": { + "tasks": { + "$ref": "#/components/schemas/Reference" + } + } } - }, - "required": [ - "label" - ], - "title": "images.Classification", - "type": "object" + } }, - "Annotations.Detection": { - "additionalProperties": false, - "description": "Represents a detection of a field value in a form.\nA field is identified by a field_name, optionally component_name and component_type if the field belongs to a subcomponent.\nThe bounding_box indicates the position of the detection. The content of the field is given by the value, and optionally\nan unnormalized_value and the unit.", + "SubworkflowTaskParameters": { + "title": "Subworkflow Task Parameters", + "type": "object", "properties": { - "confidence": { - "default": null, - "description": "The confidence score for the primitive. It should be between 0 and 1.", - "maximum": 1, - "minimum": 0, - "type": "number" - }, - "pageNumber": { - "default": 1, - "description": "The number of the page on which this annotation is located. The first page has number 1.", - "maximum": 100000, - "minimum": 1, - "type": "integer" - }, - "boundingBox": { - "allOf": [ + "subworkflow": { + "oneOf": [ { - "$ref": "#/components/schemas/Annotations.BoundingBox" + "type": "object", + "properties": { + "tasks": { + "description": "A list of tasks with their inputs and interdependencies. Similar to the way tasks are defined in a workflow definition.\n", + "type": "array", + "items": { + "$ref": "#/components/schemas/TaskDefinition" + }, + "maxItems": 100, + "minItems": 1 + } + }, + "required": [ + "tasks" + ] + }, + { + "type": "object", + "description": "Run another workflow embedded as a subworkflow. The tasks within the subworkflow will count towards the limit on total number of tasks in a workflow.\n", + "properties": { + "workflowExternalId": { + "type": "string", + "description": "External ID of the referenced workflow" + }, + "version": { + "type": "string", + "description": "Version of the referenced workflow" + } + }, + "required": [ + "workflowExternalId", + "version" + ] } - ], - "description": "Bounding box of the detection area" - }, - "componentType": { - "default": null, - "description": "Type of subcomponent that the detection belongs to", - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "componentName": { - "default": null, - "description": "Name of subcomponent that the detection belongs to", - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "fieldName": { - "description": "Name of field that has been detected", - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "value": { - "description": "The value that has been detected", - "maxLength": 128, - "type": "string" - }, - "valueUnnormalized": { - "default": null, - "description": "The value that has been detected, before normalization. Optional.", - "maxLength": 128, - "type": "string" - }, - "unit": { - "default": null, - "description": "The unit of the value field. Optional.", - "maxLength": 128, - "minLength": 1, - "type": "string" + ] } - }, - "required": [ - "boundingBox", - "fieldName", - "value" - ], - "title": "forms.Detection", - "type": "object" + } }, - "Annotations.ExtractedText": { - "additionalProperties": false, - "description": "Represents text extracted from a document. Annotations of this type are low-level and not specific to any domain.", + "TransformationTaskOutput": { + "title": "Transformation Task Output", + "type": "object", "properties": { - "pageNumber": { - "default": 1, - "description": "The number of the page on which this annotation is located. The first page has number 1.", - "maximum": 100000, - "minimum": 1, - "type": "integer" - }, - "textRegion": { - "allOf": [ - { - "$ref": "#/components/schemas/Annotations.BoundingBox" - } - ], - "description": "The location of the extracted text" - }, - "extractedText": { - "description": "The extracted text", - "maxLength": 1024, - "minLength": 1, - "type": "string" + "jobId": { + "type": "integer", + "format": "int64", + "description": "Job ID of the Transformation called." } }, "required": [ - "textRegion", - "extractedText" - ], - "title": "documents.ExtractedText", - "type": "object" + "jobId" + ] }, - "Annotations.FileLink": { - "additionalProperties": false, - "description": "Models a link to a CDF File referenced in an engineering diagram", + "FunctionTaskOutput": { + "title": "Function Task Output", + "type": "object", "properties": { - "description": { - "default": null, - "description": "The description of a primitive", - "maxLength": 500, - "type": "string" - }, - "pageNumber": { - "default": 1, - "description": "The number of the page on which this annotation is located. The first page has number 1.", - "maximum": 100000, - "minimum": 1, - "type": "integer" - }, - "fileRef": { - "allOf": [ - { - "$ref": "#/components/schemas/Annotations.FileRef" - } - ], - "description": "The file this annotation is pointing to" - }, - "symbolRegion": { - "allOf": [ - { - "$ref": "#/components/schemas/Annotations.BoundingBox" - } - ], - "default": null, - "description": "The location of the symbol representing the file" - }, - "textRegion": { - "allOf": [ - { - "$ref": "#/components/schemas/Annotations.BoundingBox" - } - ], - "description": "The location of the text mentioning the file" + "callId": { + "type": "integer", + "format": "int64", + "description": "The callId of the Cognite Function call instance." }, - "text": { - "default": null, - "description": "The extracted text", - "maxLength": 128, - "minLength": 1, - "type": "string" + "functionId": { + "type": "integer", + "format": "int64", + "description": "The functionId of the Cognite Function called." }, - "symbol": { - "default": null, - "description": "The symbol found in the file", - "maxLength": 128, - "minLength": 1, - "type": "string" + "response": { + "type": "object", + "description": "The response of the function call. Limited to 100KB in size." } }, "required": [ - "fileRef", - "textRegion" - ], - "title": "diagrams.FileLink", - "type": "object" + "callId", + "functionId", + "response" + ] }, - "Annotations.IsoPlanAnnotation": { - "additionalProperties": false, - "description": "Model a custom link in a engineering diagram where it capture details from the texts and linked to assets when necessary", + "CdfTaskOutput": { + "title": "CDF Task Output", + "type": "object", "properties": { - "pageNumber": { - "default": 1, - "description": "The number of the page on which this annotation is located. The first page has number 1.", - "maximum": 100000, - "minimum": 1, - "type": "integer" - }, - "fileRef": { - "allOf": [ - { - "$ref": "#/components/schemas/Annotations.FileRef" - } - ], - "default": null, - "description": "Contains a link to a file in CDF. This is used to navigate between files." - }, - "text": { - "default": null, - "description": "Text found in the area, might be a FLOC, valve detail, pipe or diagram name.", - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "textRegion": { - "allOf": [ - { - "$ref": "#/components/schemas/Annotations.BoundingBox" - } - ], - "default": null, - "description": "The location of the hotspot represented with a bounding box." - }, - "indirectRelation": { - "default": null, - "description": "Relation connecting this hotspot to a tag in case the hotspot has no tag. E.g. 'upstreams of'. This references the 'indirectExternalId'.", - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "indirectExternalId": { - "allOf": [ - { - "$ref": "#/components/schemas/Annotations.AssetRef" - } - ], - "default": null, - "description": "The indirectExternalId is the external id of the equipment used to identify the hotspot indirectly. E.g. first valve upstreams of ." - }, - "lineExternalId": { - "allOf": [ - { - "$ref": "#/components/schemas/Annotations.AssetRef" - } - ], - "default": null, - "description": "The id of the Pipe that the hotspot belongs to." - }, - "detail": { - "default": null, - "description": "Detail describing the equipment.", - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "subDetail": { - "default": null, - "description": "Additional details, the fluid code for pipes e.g. LO for Lube oil etc.", - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "sourceType": { - "default": null, - "description": "Marks the hotspot as user created or detected via pipeline.", - "enum": [ - "pipeline", - "user" - ], - "type": "string" - }, - "linkedResourceInternalId": { - "default": null, - "description": "Stores the Functional Location (FLOC) ID represented by the hotspot.", - "type": "integer" - }, - "linkedResourceExternalId": { - "default": null, - "description": "Stores Functional Location (FLOC) external ID represented by the hotspot.", - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "linkedResourceType": { - "default": null, - "description": "Whether the hotspot represents an asset (FLOC) or file.", - "enum": [ - "asset", - "file" - ], - "type": "string" - }, - "type": { - "default": null, - "description": "Type of equipment, valve, pump etc.", - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "relativePosition": { - "default": null, - "description": "Relative position of the relation connecting the hotspot to a tag. E.g. '2nd'. This references the 'indirectExternalId'.", - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "revision": { - "default": null, - "description": "Revision number of the P&ID file that the hotspot is valid for.", - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "sizeAndClass": { - "allOf": [ + "response": { + "oneOf": [ { - "$ref": "#/components/schemas/Annotations.SizeAndClassType" - } - ], - "default": null, - "description": "Stores the dimensions of a valve or spade." - }, - "oldAnnotationId": { - "default": null, - "description": "Temporary field for migration purposes. Id of corresponding legacy annotation.", - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "vertices": { - "allOf": [ + "type": "string" + }, { - "$ref": "#/components/schemas/Annotations.PolyLine" + "type": "object" } ], - "default": null, - "description": "Stores the (x,y) coordinate pairs of a line or polyline." - } - }, - "title": "isoplan.IsoPlanAnnotation", - "type": "object" - }, - "Annotations.Junction": { - "additionalProperties": false, - "description": "Models a junction between lines in an engineering diagram", - "properties": { - "pageNumber": { - "default": 1, - "description": "The number of the page on which this annotation is located. The first page has number 1.", - "maximum": 100000, - "minimum": 1, - "type": "integer" + "description": "The body of the response. Will be a a JSON object if content-type is application/json, otherwise it will be a string." }, - "position": { - "allOf": [ - { - "$ref": "#/components/schemas/Annotations.Point" - } - ], - "description": "The point representing the junction" + "statusCode": { + "type": "integer", + "description": "The HTTP status code of the response." } - }, - "required": [ - "position" - ], - "title": "diagrams.Junction", - "type": "object" + } }, - "Annotations.KeypointCollection": { - "additionalProperties": false, - "description": "Models a collection of keypoints represented by a label, a dictionary of\nkeypoints (mapping from a (unique) label name to a keypoint), and\noptionally a confidence value and an attributes dictionary.", + "DynamicTaskOutput": { + "title": "Dynamic Task Output", + "type": "object", "properties": { - "attributes": { - "additionalProperties": { - "discriminator": { - "mapping": { - "boolean": "#/components/schemas/Annotations.Boolean", - "numerical": "#/components/schemas/Annotations.Numerical" - }, - "propertyName": "type" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/Annotations.Boolean" - }, - { - "$ref": "#/components/schemas/Annotations.Numerical" - } - ] - }, - "default": null, - "description": "Additional attributes data for a compound.", - "type": "object" - }, - "label": { - "description": "The label describing what type of object it is", - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "confidence": { - "default": null, - "description": "The confidence score for the primitive. It should be between 0 and 1.", - "maximum": 1, - "minimum": 0, - "type": "number" - }, - "keypoints": { - "additionalProperties": { - "$ref": "#/components/schemas/Annotations.Keypoint" + "dynamicTasks": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TaskDefinition" }, - "description": "The detected keypoints", - "type": "object" + "minItems": 0, + "maxItems": 100 } - }, - "required": [ - "label", - "keypoints" - ], - "title": "images.KeypointCollection", - "type": "object" + } }, - "Annotations.Line": { - "additionalProperties": false, - "description": "Models a line in an engineering diagram", + "WorkflowDefinitionResponse": { + "title": "Workflow Definition", + "type": "object", "properties": { - "label": { - "description": "The label describing what type of object it is", - "maxLength": 128, - "minLength": 1, + "hash": { "type": "string" }, - "pageNumber": { - "default": 1, - "description": "The number of the page on which this annotation is located. The first page has number 1.", - "maximum": 100000, - "minimum": 1, - "type": "integer" - }, - "polyline": { - "allOf": [ - { - "$ref": "#/components/schemas/Annotations.PolyLine" - } - ], - "description": "The polyline representing the line" + "description": { + "type": "string", + "maxLength": 500 + }, + "tasks": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TaskDefinition" + } } }, "required": [ - "label", - "polyline" - ], - "title": "diagrams.Line", - "type": "object" + "hash", + "tasks" + ] }, - "Annotations.ObjectDetection": { - "additionalProperties": false, - "description": "Models an image object detection represented by a label, a geometry, and\noptionally a confidence value.", + "WorkflowVersionView": { + "title": "Workflow Version", + "type": "object", "properties": { - "attributes": { - "additionalProperties": { - "discriminator": { - "mapping": { - "boolean": "#/components/schemas/Annotations.Boolean", - "numerical": "#/components/schemas/Annotations.Numerical" - }, - "propertyName": "type" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/Annotations.Boolean" - }, - { - "$ref": "#/components/schemas/Annotations.Numerical" - } - ] - }, - "default": null, - "description": "Additional attributes data for a compound.", - "type": "object" + "workflowExternalId": { + "$ref": "#/components/schemas/WorkflowExternalId" }, - "boundingBox": { - "allOf": [ - { - "$ref": "#/components/schemas/Annotations.BoundingBox" - } - ], - "default": null + "version": { + "$ref": "#/components/schemas/Version" }, - "polygon": { - "allOf": [ - { - "$ref": "#/components/schemas/Annotations.Polygon" - } - ], - "default": null + "workflowDefinition": { + "$ref": "#/components/schemas/WorkflowDefinitionResponse" }, - "polyline": { - "allOf": [ - { - "$ref": "#/components/schemas/Annotations.PolyLine" - } - ], - "default": null + "createdTime": { + "$ref": "#/components/schemas/EpochTimestamp" }, - "label": { - "description": "The label describing what type of object it is", - "maxLength": 128, - "minLength": 1, - "type": "string" + "lastUpdatedTime": { + "$ref": "#/components/schemas/EpochTimestamp" + } + } + }, + "Version": { + "type": "string", + "description": "Identifier for a version. Must be unique for the workflow. No trailing or leading whitespace and no null characters allowed.", + "maxLength": 255 + }, + "WorkflowExternalId": { + "type": "string", + "description": "Identifier for a workflow. Must be unique for the project. No trailing or leading whitespace and no null characters allowed.", + "maxLength": 255 + }, + "WorkflowExecutionId": { + "type": "string", + "description": "UUIDv4 identifier for a workflow execution.", + "maxLength": 36, + "minLength": 36, + "example": "059edaa4-a17a-4102-910e-2c3591500cce" + }, + "WorkflowFilter": { + "type": "object", + "description": "If the version is not specified, all versions for the workflow will be included, ordered by createdTime.", + "properties": { + "externalId": { + "$ref": "#/components/schemas/WorkflowExternalId" }, - "confidence": { - "default": null, - "description": "The confidence score for the primitive. It should be between 0 and 1.", - "maximum": 1, - "minimum": 0, - "type": "number" + "version": { + "$ref": "#/components/schemas/Version" } }, "required": [ - "label" - ], - "title": "images.ObjectDetection", - "type": "object" + "externalId" + ] }, - "Annotations.TextRegion": { - "additionalProperties": false, - "description": "Models an extracted text region in an image", + "ListExecutionsFilter": { + "title": "List Executions Filter", + "type": "object", "properties": { - "confidence": { - "default": null, - "description": "The confidence score for the primitive. It should be between 0 and 1.", - "maximum": 1, + "workflowFilters": { + "type": "array", + "description": "Allows filtering executions by their workflows (and optionally version identifiers). If no workflowFilters are specified, all executions for all workflows will be included, ordered by createdTime.", + "items": { + "$ref": "#/components/schemas/WorkflowFilter" + }, + "maxItems": 100 + }, + "createdTimeStart": { + "type": "integer", "minimum": 0, - "type": "number" + "description": "epoch timestamp in milliseconds" }, - "text": { - "description": "The extracted text", - "maxLength": 128, - "minLength": 1, - "type": "string" + "createdTimeEnd": { + "type": "integer", + "minimum": 0, + "description": "epoch timestamp in milliseconds" }, - "textRegion": { - "allOf": [ - { - "$ref": "#/components/schemas/Annotations.BoundingBox" - } - ], - "description": "The location of the extracted text" + "status": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WorkflowStatus" + }, + "description": "workflow execution status", + "uniqueItems": true } - }, - "required": [ - "text", - "textRegion" - ], - "title": "images.TextRegion", - "type": "object" + } }, - "Annotations.UnhandledSymbolObject": { - "additionalProperties": false, - "description": "Models an extracted symbol region in an engineering diagram", + "ListExecutionsQuery": { + "type": "object", "properties": { - "description": { - "default": null, - "description": "The description of a primitive", - "maxLength": 500, - "type": "string" - }, - "pageNumber": { - "default": 1, - "description": "The number of the page on which this annotation is located. The first page has number 1.", - "maximum": 100000, - "minimum": 1, - "type": "integer" + "filter": { + "$ref": "#/components/schemas/ListExecutionsFilter" }, - "symbolRegion": { - "allOf": [ - { - "$ref": "#/components/schemas/Annotations.BoundingBox" - } - ], - "description": "The location of the symbol" + "limit": { + "$ref": "#/components/schemas/limit" }, - "symbol": { - "description": "The symbol found in the file", - "maxLength": 128, - "minLength": 1, - "type": "string" + "cursor": { + "$ref": "#/components/schemas/cursor" } }, "required": [ - "symbolRegion", - "symbol" - ], - "title": "diagrams.UnhandledSymbolObject", - "type": "object" + "filter" + ] }, - "Annotations.UnhandledTextObject": { - "additionalProperties": false, - "description": "Models an extracted text region in an engineering diagram", + "ListVersionsFilter": { + "type": "object", "properties": { - "description": { - "default": null, - "description": "The description of a primitive", - "maxLength": 500, - "type": "string" - }, - "pageNumber": { - "default": 1, - "description": "The number of the page on which this annotation is located. The first page has number 1.", - "maximum": 100000, - "minimum": 1, - "type": "integer" + "workflowFilters": { + "type": "array", + "maxItems": 100, + "description": "Allows filtering versions by their specific workflows (and optionally version identifiers). If no workflowFilters are specified, all versions for all workflows will be included, ordered by createdTime.", + "items": { + "$ref": "#/components/schemas/WorkflowFilter" + } + } + } + }, + "ListVersionsQuery": { + "type": "object", + "properties": { + "filter": { + "$ref": "#/components/schemas/ListVersionsFilter" }, - "textRegion": { - "allOf": [ - { - "$ref": "#/components/schemas/Annotations.BoundingBox" - } - ], - "description": "The location of the text" + "limit": { + "$ref": "#/components/schemas/limit" }, - "text": { - "description": "The extracted text", - "maxLength": 128, - "minLength": 1, - "type": "string" + "cursor": { + "$ref": "#/components/schemas/cursor" } }, "required": [ - "textRegion", - "text" - ], - "title": "diagrams.UnhandledTextObject", - "type": "object" + "filter" + ] }, - "Annotations.cognite__annotation_types__diagrams__AssetLink": { - "additionalProperties": false, - "description": "Models a link to a CDF Asset referenced in an engineering diagram", + "Reference": { + "type": "string", + "description": "A Reference is an expression that allows dynamically injecting input to a task during execution. References can be used to reference the input of the Workflow, the output of a previous task in the Workflow, or the input of a previous task in the Workflow. Note that the injected value must be valid in the context of the property it is injected into.\nExample Task reference: ${myTaskExternalId.output.someKey} Example Workflow input reference: ${workflow.input.myKey}" + }, + "WorkflowStatus": { + "type": "string", + "enum": [ + "RUNNING", + "COMPLETED", + "FAILED", + "TIMED_OUT", + "TERMINATED" + ] + }, + "WorkflowExecutionResponse": { + "title": "Workflow Definition Execution Response", + "type": "object", "properties": { - "description": { - "default": null, - "description": "The description of a primitive", - "maxLength": 500, - "type": "string" + "id": { + "$ref": "#/components/schemas/WorkflowExecutionId" }, - "pageNumber": { - "default": 1, - "description": "The number of the page on which this annotation is located. The first page has number 1.", - "maximum": 100000, - "minimum": 1, - "type": "integer" + "workflowExternalId": { + "$ref": "#/components/schemas/WorkflowExternalId" }, - "assetRef": { - "allOf": [ - { - "$ref": "#/components/schemas/Annotations.AssetRef" - } - ], - "description": "The asset this annotation is pointing to" + "version": { + "$ref": "#/components/schemas/Version" }, - "symbolRegion": { - "allOf": [ - { - "$ref": "#/components/schemas/Annotations.BoundingBox" - } - ], - "default": null, - "description": "The location of the symbol representing the asset" + "status": { + "$ref": "#/components/schemas/WorkflowStatus" }, - "textRegion": { - "allOf": [ - { - "$ref": "#/components/schemas/Annotations.BoundingBox" - } - ], - "description": "The location of the text mentioning the asset" + "engineExecutionId": { + "$ref": "#/components/schemas/EngineExecutionId" }, - "text": { - "default": null, - "description": "The extracted text", - "maxLength": 128, - "minLength": 1, - "type": "string" + "createdTime": { + "$ref": "#/components/schemas/EpochTimestamp" }, - "symbol": { - "default": null, - "description": "The symbol representing the asset", - "maxLength": 128, - "minLength": 1, - "type": "string" + "startTime": { + "$ref": "#/components/schemas/EpochTimestamp" + }, + "endTime": { + "$ref": "#/components/schemas/EpochTimestamp" + }, + "reasonForIncompletion": { + "$ref": "#/components/schemas/ReasonForIncompletion" + }, + "metadata": { + "$ref": "#/components/schemas/metadata" } }, "required": [ - "assetRef", - "textRegion" - ], - "title": "diagrams.AssetLink", - "type": "object" + "id", + "workflowExternalId", + "status", + "engineExecutionId", + "createdTime", + "metadata" + ] }, - "Annotations.cognite__annotation_types__diagrams__InstanceLink": { - "additionalProperties": false, - "description": "Models a link to an FDM instance referenced in an engineering diagram", + "TaskExecutionId": { + "type": "string", + "description": "UUIDv4 identifier for the execution of a workflow task.", + "minLength": 36, + "maxLength": 36 + }, + "EngineExecutionId": { + "type": "string", + "description": "Additional UUIDv4 identifier for an execution. Useful for Cognite support to diagnose issues.", + "minLength": 36, + "maxLength": 36 + }, + "TaskExecution": { + "title": "Task Execution", + "type": "object", "properties": { - "description": { - "default": null, - "description": "The description of a primitive", - "maxLength": 500, - "type": "string" + "id": { + "$ref": "#/components/schemas/TaskExecutionId" }, - "pageNumber": { - "default": 1, - "description": "The number of the page on which this annotation is located. The first page has number 1.", - "maximum": 100000, - "minimum": 1, - "type": "integer" + "externalId": { + "$ref": "#/components/schemas/CogniteExternalId" }, - "instanceRef": { - "allOf": [ - { - "$ref": "#/components/schemas/Annotations.InstanceRef" - } - ], - "description": "The FDM instance this annotation is pointing to" + "status": { + "type": "string", + "enum": [ + "IN_PROGRESS", + "CANCELED", + "FAILED", + "FAILED_WITH_TERMINAL_ERROR", + "COMPLETED", + "COMPLETED_WITH_ERRORS", + "SCHEDULED", + "TIMED_OUT", + "SKIPPED" + ] }, - "symbolRegion": { - "allOf": [ - { - "$ref": "#/components/schemas/Annotations.BoundingBox" - } - ], - "default": null, - "description": "Optional location of a symbol" + "taskType": { + "type": "string", + "enum": [ + "function", + "transformation", + "cdf", + "dynamic", + "subworkflow" + ] }, - "symbol": { - "default": null, - "description": "The symbol found in the file", - "maxLength": 128, - "minLength": 1, - "type": "string" + "startTime": { + "$ref": "#/components/schemas/EpochTimestamp" }, - "text": { - "description": "The extracted text", - "maxLength": 128, - "minLength": 1, - "type": "string" + "endTime": { + "$ref": "#/components/schemas/EpochTimestamp" }, - "textRegion": { - "allOf": [ + "input": { + "$ref": "#/components/schemas/ExecutionInput" + }, + "output": { + "oneOf": [ { - "$ref": "#/components/schemas/Annotations.BoundingBox" + "$ref": "#/components/schemas/FunctionTaskOutput" + }, + { + "$ref": "#/components/schemas/TransformationTaskOutput" + }, + { + "$ref": "#/components/schemas/CdfTaskOutput" + }, + { + "$ref": "#/components/schemas/DynamicTaskOutput" } - ], - "description": "The location of the text mentioning the file" + ] + }, + "reasonForIncompletion": { + "$ref": "#/components/schemas/ReasonForIncompletion" } }, - "required": [ - "instanceRef", - "text", - "textRegion" - ], - "title": "diagrams.InstanceLink", - "type": "object" + "required": [ + "id", + "externalId", + "status", + "taskType", + "input", + "output" + ] + }, + "nextCursor": { + "description": "Cursor to get the next page of results. If not present, no more results are available.", + "type": "string", + "example": "4zj0Vy2fo0NtNMb229mI9r1V3YG5NBL752kQz1cKtwo" + }, + "cursor": { + "type": "string", + "example": "4zj0Vy2fo0NtNMb229mI9r1V3YG5NBL752kQz1cKtwo", + "description": "Cursor to use for paging through results. This cursor is returned in the response of a previous request as `nextCursor`. If not specified, start from the first page of results." + }, + "limit": { + "type": "integer", + "minimum": 1, + "maximum": 1000, + "default": 100, + "description": "The maximum number of results to return." + }, + "metadata": { + "type": "object", + "maxProperties": 10, + "additionalProperties": { + "type": "string", + "maxLength": 255 + }, + "description": "Custom, application-specific metadata. String key -> String value.\nKeys have a maximum length of 32 characters, values a maximum of 255,\nand there can be a maximum of 10 key-value pairs.\n" }, - "Annotations.cognite__annotation_types__images__AssetLink": { - "additionalProperties": false, - "description": "Models a link to a CDF Asset referenced in an image", + "ReasonForIncompletion": { + "type": "string", + "description": "Human-readable reason for terminal failure of a workflow task." + }, + "ExecutionInput": { + "type": "object", + "example": { + "key1": "value1", + "key2": "value2" + }, + "description": "Input data to the workflow. The content of the input data can be used as input to the workflow tasks using references. The input data should be in JSON format, and is limited to 100KB in size." + }, + "CancelExecution": { + "title": "Workflow cancellation request", + "type": "object", "properties": { - "confidence": { - "default": null, - "description": "The confidence score for the primitive. It should be between 0 and 1.", - "maximum": 1, - "minimum": 0, - "type": "number" - }, - "assetRef": { - "allOf": [ - { - "$ref": "#/components/schemas/Annotations.AssetRef" - } - ], - "description": "The asset this annotation is pointing to" - }, - "text": { - "description": "The extracted text", - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "textRegion": { - "allOf": [ - { - "$ref": "#/components/schemas/Annotations.BoundingBox" - } - ], - "description": "The location of the text mentioning the asset" - }, - "objectRegion": { - "allOf": [ - { - "$ref": "#/components/schemas/Annotations.cognite__annotation_types__primitives__geometry2d__Geometry" - } - ], - "default": null, - "description": "The region of the object representing the asset" + "reason": { + "type": "string", + "description": "Human-readable reason for the cancellation.", + "default": "cancelled", + "maxLength": 500 + } + } + }, + "RetryExecution": { + "title": "Workflow retry request", + "type": "object", + "properties": { + "authentication": { + "$ref": "#/components/schemas/Authentication" } }, "required": [ - "assetRef", - "text", - "textRegion" - ], - "title": "images.AssetLink", - "type": "object" + "authentication" + ] }, - "Annotations.cognite__annotation_types__images__InstanceLink": { - "additionalProperties": false, - "description": "Models a link to an FDM instance referenced in an image", + "SimulationLogs": { + "type": "object", "properties": { - "confidence": { - "default": null, - "description": "The confidence score for the primitive. It should be between 0 and 1.", - "maximum": 1, - "minimum": 0, - "type": "number" - }, - "instanceRef": { - "allOf": [ - { - "$ref": "#/components/schemas/Annotations.InstanceRef" - } - ], - "description": "The FDM instance this annotation is pointing to" + "timestamp": { + "$ref": "#/components/schemas/EpochTimestamp" }, - "text": { - "description": "The extracted text", - "maxLength": 128, - "minLength": 1, - "type": "string" + "message": { + "type": "string", + "description": "Message of the log" }, - "textRegion": { - "allOf": [ - { - "$ref": "#/components/schemas/Annotations.BoundingBox" - } + "severity": { + "type": "string", + "enum": [ + "Debug", + "Information", + "Warning", + "Error" ], - "description": "The location of the text mentioning the FDM instance" + "description": "Severity of the log" } - }, - "required": [ - "instanceRef", - "text", - "textRegion" - ], - "title": "images.InstanceLink", - "type": "object" + } }, - "BatchDownloadRequestSeismic": { + "SimulatorRunResultOutput": { "type": "object", - "required": [ - "items" - ], "properties": { - "items": { - "type": "array", - "description": "The list of seismic objects to include in the ZIP archive, specified by internal id.", - "items": { - "$ref": "#/components/schemas/CogniteInternalId" - } + "referenceId": { + "type": "string", + "description": "Reference id of the value" + }, + "value": { + "type": "object", + "description": "Value used for simulation" + }, + "valueType": { + "type": "string", + "enum": [ + "STRING", + "DOUBLE", + "STRING_ARRAY", + "DOUBLE_ARRAY" + ], + "description": "Type of the value" } } }, - "BatchDownloadRequestFilter": { + "SimulatorRunResultData": { "type": "object", "properties": { - "surveyId": { - "type": "integer", - "minimum": 1, - "maximum": 9007199254740991, - "format": "int64", - "description": "A survey's internal ID. All seismic objects included will be part of this survey." - }, - "partitionId": { + "runId": { "type": "integer", - "minimum": 1, - "maximum": 9007199254740991, "format": "int64", - "description": "A partition's internal ID. All seismic objects included will be part of this partition." + "description": "The runId of the simulation run instance." }, - "metadataFilter": { - "type": "object", - "description": "All seismic objects included will have metadata that is a superset of the specified metadata filter.", - "additionalProperties": { - "type": "string" - } + "outputs": { + "type": "array", + "$ref": "#/components/schemas/SimulatorRunResultOutput" } } }, - "UserIdentifier": { + "SimulatorInputsUnit": { "type": "object", - "required": [ - "userIdentifier" - ], "properties": { - "userIdentifier": { + "name": { "type": "string", - "example": "abcd" + "description": "Name of the unit." } } }, - "UserProfileItem": { + "SimulatorInput": { "type": "object", - "required": [ - "userIdentifier", - "lastUpdatedTime" - ], "properties": { - "userIdentifier": { + "referenceId": { "type": "string", - "description": "Uniquely identifies the principal the profile is associated with.\nThis property is _guaranteed_ to be immutable.\n", - "nullable": false, - "example": "abcd" + "description": "Reference id of the value to override" }, - "givenName": { - "type": "string", - "description": "The user's first name.", - "nullable": true, - "example": "Jane" + "value": { + "anyOf": [ + { + "type": "string", + "maxLength": 1024, + "minLength": 1 + }, + { + "type": "number" + }, + { + "items": { + "type": "string" + }, + "type": "array", + "maxItems": 100, + "minItems": 1 + }, + { + "items": { + "type": "number" + }, + "type": "array", + "maxItems": 100, + "minItems": 1 + } + ], + "title": "Value", + "description": "Override the value used for a simulation run" }, - "surname": { + "unit": { + "description": "Override the unit of the value", + "type": "array", + "items": { + "$ref": "#/components/schemas/SimulatorInputsUnit" + }, + "minItems": 0, + "maxItems": 100 + } + } + }, + "Authentication": { + "type": "object", + "properties": { + "nonce": { "type": "string", - "description": "The user's last name.", - "nullable": true, - "example": "Doe" + "description": "The nonce of a sessions token, which can be obtained using client credentials authentication flow. The nonce's session must be a root session, i.e. it must not be a child of another session. See [Sessions API](https://api-docs.cognite.com/20230101/tag/Sessions) documentation for more information.", + "example": "hOfy4Zop4N2SPRfl" + } + }, + "required": [ + "nonce" + ] + }, + "TriggerExternalId": { + "type": "string", + "description": "Identifier for a trigger. Must be unique for the project. No trailing or leading whitespace and no null characters allowed.", + "maxLength": 255 + }, + "TriggerView": { + "title": "Trigger response", + "type": "object", + "properties": { + "externalId": { + "$ref": "#/components/schemas/TriggerExternalId" }, - "email": { - "type": "string", - "description": "The user's email address (if any). The email address is is returned directly from \nthe identity provider and not guaranteed to be verified. \nNote that the email is mutable and can be updated in the identity provider. It should \n_not_ be used to uniquely identify as a user. Use the `userIdentifier` property instead.\n", - "nullable": true, - "example": "jane.doe@example.com" + "triggerRule": { + "$ref": "#/components/schemas/TriggerRule" }, - "displayName": { - "type": "string", - "description": "The display name for the user.", - "nullable": true, - "example": "Jane Doe" + "input": { + "$ref": "#/components/schemas/ExecutionInput" }, - "jobTitle": { - "type": "string", - "description": "The user's job title.", - "nullable": true, - "example": "Software Engineer" + "workflowExternalId": { + "$ref": "#/components/schemas/WorkflowExternalId" }, - "identityType": { - "$ref": "#/components/schemas/IdentityType" + "workflowVersion": { + "$ref": "#/components/schemas/Version" + }, + "createdTime": { + "$ref": "#/components/schemas/EpochTimestamp" }, "lastUpdatedTime": { "$ref": "#/components/schemas/EpochTimestamp" } } }, - "UserProfilesByIdsRequest": { - "description": "Array of user identifiers", - "type": "object", - "properties": { - "items": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserIdentifier" - } + "TriggerRule": { + "oneOf": [ + { + "$ref": "#/components/schemas/CronTrigger" } - } + ] }, - "UserProfilesSearchRequest": { + "CronTrigger": { "type": "object", "properties": { - "search": { - "type": "object", - "properties": { - "name": { - "description": "Prefix search on name.", - "type": "string" - } - } + "triggerType": { + "type": "string", + "enum": [ + "schedule" + ] }, - "limit": { - "description": "<- Limits the maximum number of results to be returned by single request. The default is 25.", - "type": "integer", - "format": "int32", - "minimum": 1, - "maximum": 1000, - "default": 25 + "cronExpression": { + "type": "string", + "description": "A cron expression (UNIX format) specifying when the trigger should be executed. Use https://crontab.guru/ to create a cron expression. The API may adjust the exact timing of cron job executions to distribute the backend load more evenly. However, it will aim to maintain the overall frequency of executions as specified in the cron expression." } } }, - "UserProfilesListResponse": { + "CertificateDetails": { + "additionalProperties": false, + "title": "CertificatDetails", "type": "object", - "required": [ - "items" - ], + "description": "Excerpt of certificate details", "properties": { - "items": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserProfileItem" - } - }, - "nextCursor": { + "thumbprint": { + "title": "Thumbprint", "type": "string", - "description": "Cursor to get the next page of results (if available)." + "description": "A thumbprint of the certificate provided", + "maxLength": 50 + }, + "expiresAt": { + "title": "ExpiresAt", + "type": "integer", + "description": "The expiry date of the certificate" } - } + }, + "required": [ + "thumbprint", + "expiresAt" + ] }, - "UserProfilesByIdsResponse": { + "AuthCertificate": { + "additionalProperties": false, + "title": "AuthenticationCertificate", "type": "object", + "description": "Authentication certificate (if configured) used to authenticate to source.", "properties": { - "items": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserProfileItem" - } + "key": { + "title": "Certificate key", + "type": "string", + "description": "The key for the certificate", + "maxLength": 100000 + }, + "keyPassword": { + "title": "Certificate key password", + "type": "string", + "description": "The password for the certificate key", + "minLength": 1, + "maxLength": 255 + }, + "type": { + "$ref": "#/components/schemas/CertificateType" + }, + "certificate": { + "title": "Certificate", + "type": "string", + "description": "Base 64 encoded der certificate, or a pem certificate with headers.", + "maxLength": 100000 } - } + }, + "required": [ + "type", + "certificate", + "key" + ] }, - "UserProfilesSearchResponse": { - "type": "object", + "CACertificate": { + "additionalProperties": false, "properties": { - "items": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserProfileItem" - } + "type": { + "$ref": "#/components/schemas/CertificateType" + }, + "certificate": { + "title": "Certificate", + "type": "string", + "description": "Base 64 encoded der certificate, or a pem certificate with headers.", + "maxLength": 100000 } - } - }, - "UserProfilesErrorResponse": { + }, "required": [ - "error" + "certificate", + "type" ], + "title": "CACertificate", "type": "object", + "description": "Custom certificate authority certificate to let the source use a self signed certificate." + }, + "CertificateType": { + "enum": [ + "der", + "pem" + ], + "title": "CertificateType", + "type": "string", + "description": "Type of certificate in the `certificate` field." + }, + "CogniteFormat": { + "additionalProperties": false, "properties": { - "error": { - "required": [ - "code", - "message" + "type": { + "enum": [ + "cognite" ], - "type": "object", - "properties": { - "code": { - "type": "integer", - "description": "HTTP status code." - }, - "message": { - "type": "string", - "description": "Error message." - }, - "missing": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserIdentifier" - }, - "description": "List of lookup objects that do not match any results." - }, - "duplicated": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserIdentifier" - }, - "description": "List of objects that are not unique." - } - } + "title": "Type", + "type": "string", + "description": "Format type." + }, + "encoding": { + "$ref": "#/components/schemas/EncodingType" + }, + "compression": { + "$ref": "#/components/schemas/CompressionType" + }, + "prefix": { + "$ref": "#/components/schemas/PrefixConfig" } - } - }, - "UserProfilesNotFoundResponse": { + }, "required": [ - "error" + "type" ], + "title": "CogniteFormat", "type": "object", + "description": "Convert from the special cognite format to CDF datapoints." + }, + "CreateDestination": { + "additionalProperties": false, "properties": { - "error": { - "required": [ - "code", - "message" - ], - "type": "object", - "properties": { - "code": { - "type": "integer", - "description": "HTTP status code." - }, - "message": { - "type": "string", - "description": "Error message." - } - } + "externalId": { + "title": "External ID", + "$ref": "#/components/schemas/CogniteExternalId" + }, + "credentials": { + "$ref": "#/components/schemas/SessionCredentials" + }, + "targetDataSetId": { + "type": "integer", + "title": "Data Set ID", + "minimum": 1, + "maximum": 9007199254740991, + "format": "int64", + "description": "Data set ID the created items are inserted into, if applicable." } - } - }, - "IdentityType": { - "description": "The identity type field indicates the type of principal.\n- `USER`: Human user.\n- `SERVICE_PRINCIPAL`: Service account.\n- `INTERNAL_SERVICE`: Internal CDF service.\n", - "type": "string", - "enum": [ - "USER", - "SERVICE_PRINCIPAL", - "INTERNAL_SERVICE" - ] - }, - "IdentityTypeFilter": { - "description": "The identity type filter field indicates the type of principal the request should be filtered to show.\nIf no value is specified, the default value is `USER`.\n- `ALL`: All types of principals.\n- `USER`: Human user.\n- `SERVICE_PRINCIPAL`: Service account.\n- `INTERNAL_SERVICE`: Internal CDF service.\n", - "type": "string", - "enum": [ - "ALL", - "USER", - "SERVICE_PRINCIPAL", - "INTERNAL_SERVICE" - ] + }, + "required": [ + "externalId" + ], + "title": "CreateDestination", + "type": "object" }, - "Workflow": { - "title": "Workflow", - "type": "object", + "CreateEventHubSource": { + "additionalProperties": false, "properties": { + "type": { + "enum": [ + "eventhub" + ], + "title": "Type", + "type": "string", + "description": "Source type." + }, "externalId": { - "$ref": "#/components/schemas/WorkflowExternalId" + "$ref": "#/components/schemas/CogniteExternalId" }, - "description": { + "host": { + "title": "Host", "type": "string", - "maxLength": 500 + "description": "Host name or IP address of the event hub consumer endpoint.", + "example": "iothub-ns-myhub-12345678-12345abcde.servicebus.windows.net", + "maxLength": 200 }, - "createdTime": { - "$ref": "#/components/schemas/EpochTimestamp" + "eventHubName": { + "title": "Eventhubname", + "type": "string", + "description": "Name of the event hub", + "example": "myhub", + "maxLength": 200 + }, + "keyName": { + "title": "KeyName", + "type": "string", + "description": "The name of the Event Hub key to use for authentication.", + "example": "iothubowner", + "maxLength": 200 + }, + "keyValue": { + "title": "KeyValue", + "type": "string", + "description": "Value of the Event Hub key to use for authentication.", + "maxLength": 200 + }, + "consumerGroup": { + "type": "string", + "title": "ConsumerGroup", + "description": "The event hub consumer group to use. Microsoft recommends having a distinct consumer group for each application consuming data from event hub. If left out, this uses the default consumer group.", + "maxLength": 200 } }, "required": [ + "type", "externalId", - "createdTime" - ] + "host", + "keyName", + "eventHubName", + "keyValue" + ], + "title": "CreateEventHubSource", + "type": "object" }, - "WorkflowDefinition": { - "title": "Workflow Definition", + "MQTTJobConfig": { + "additionalProperties": false, "type": "object", + "title": "MQTT", + "required": [ + "topicFilter" + ], "properties": { - "description": { + "topicFilter": { + "title": "TopicFilter", "type": "string", - "maxLength": 500 - }, - "tasks": { - "type": "array", - "maxItems": 100, - "items": { - "$ref": "#/components/schemas/TaskDefinition" - } + "description": "Topic filter.", + "maxLength": 200 } - }, - "required": [ - "tasks" - ] + } }, - "TaskDefinition": { - "title": "Task Definition", + "KafkaJobConfig": { + "additionalProperties": false, "type": "object", + "title": "Kafka", + "required": [ + "topic" + ], "properties": { - "externalId": { - "$ref": "#/components/schemas/CogniteExternalId" + "topic": { + "title": "Topic", + "type": "string", + "description": "Kafka topic to connect to", + "maxLength": 200 }, + "partitions": { + "title": "Partitions", + "type": "integer", + "minimum": 1, + "maximum": 10, + "default": 1, + "description": "Number of partitions on the topic." + } + } + }, + "QueryParameterConfig": { + "additionalProperties": false, + "type": "object", + "title": "QueryParameterConfig", + "required": [ + "key", + "value", + "type" + ], + "properties": { "type": { - "$ref": "#/components/schemas/TaskType" - }, - "name": { + "title": "Type", "type": "string", - "maxLength": 32 + "enum": [ + "queryParam" + ] }, - "description": { + "key": { + "title": "Key", "type": "string", - "maxLength": 500 + "description": "Key to insert the generated value into" }, - "parameters": { - "oneOf": [ - { - "$ref": "#/components/schemas/FunctionTaskParameters" - }, - { - "$ref": "#/components/schemas/TransformationTaskParameters" - }, - { - "$ref": "#/components/schemas/CdfTaskParameters" - }, - { - "$ref": "#/components/schemas/DynamicTaskParameters" - }, - { - "$ref": "#/components/schemas/SubworkflowTaskParameters" - } + "value": { + "title": "Value", + "type": "string", + "description": "Expression that will be evaluated, and its result used as a query parameter" + } + } + }, + "HeaderValueConfig": { + "additionalProperties": false, + "type": "object", + "title": "HeaderValueConfig", + "required": [ + "key", + "value", + "type" + ], + "properties": { + "type": { + "title": "Type", + "type": "string", + "enum": [ + "headerValue" ] }, - "retries": { - "type": "number", - "default": 3, - "minimum": 0, - "maximum": 10, - "description": "Number of times to retry the task if it fails. If set to 0, the task will not be retried. The behavior for timeouts and retries is defined by the `onFailure` parameter, refer to it for more information." - }, - "timeout": { - "type": "number", - "default": 3600, - "minimum": 100, - "maximum": 43200, - "description": "Timeout in seconds. After this time, the task will be marked as `TIMED_OUT`. By default, the task won't be retried upon timeout. Use the `onFailure` parameter to change this behavior." - }, - "onFailure": { + "key": { + "title": "Key", "type": "string", - "enum": [ - "abortWorkflow", - "skipTask" - ], - "default": "abortWorkflow", - "description": "Defines the policy to handle failures and timeouts. \n- `skipTask`: For both failures and timeouts, it will retry until the retries are exhausted. After that, the Task is marked as COMPLETED_WITH_ERRORS and the subsequent tasks are executed.\n- `abortWorkflow`: \n - In case of failures, retries will be performed until exhausted, after which the task is marked as FAILED and the Workflow is marked the same. \n - In the event of a timeout, no retries are undertaken; the task is marked as TIMED_OUT and the Workflow is marked as FAILED.\n" + "description": "Key to insert the generated value into" }, - "dependsOn": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TaskDepends" - }, - "minItems": 0, - "maxItems": 100, - "description": "The tasks that must be completed before this task can be executed." + "value": { + "title": "Value", + "type": "string", + "description": "Expression that will be evaluated, and its result used as a header value" } - }, + } + }, + "NextUrlConfig": { + "additionalProperties": false, + "type": "object", + "title": "HeaderValueConfig", "required": [ - "externalId", "type", - "parameters" - ] + "value" + ], + "properties": { + "type": { + "title": "Type", + "type": "string", + "enum": [ + "nextUrl" + ] + }, + "value": { + "title": "Value", + "type": "string", + "description": "Expression yielding the next URL to call" + } + } }, - "TaskDepends": { + "BodyPaginationConfig": { + "additionalProperties": false, "type": "object", + "title": "BodyPaginationConfig", + "required": [ + "type", + "value" + ], "properties": { - "externalId": { - "$ref": "#/components/schemas/CogniteExternalId" + "type": { + "title": "Type", + "type": "string", + "enum": [ + "body" + ] + }, + "value": { + "title": "Value", + "type": "string", + "description": "Expression yielding next message body. Note that body-based pagination is not allowed to be used if `method` is not set to `post`.\n" } } }, - "TaskType": { - "type": "string", - "enum": [ - "function", - "transformation", - "cdf", - "dynamic", - "subworkflow" - ] - }, - "WorkflowExecution": { - "title": "Workflow Execution", + "RestJobConfig": { + "additionalProperties": false, "type": "object", + "title": "Rest", "properties": { - "id": { - "$ref": "#/components/schemas/WorkflowExecutionId" - }, - "workflowExternalId": { - "$ref": "#/components/schemas/WorkflowExternalId" - }, - "workflowDefinition": { - "$ref": "#/components/schemas/WorkflowDefinitionResponse" + "interval": { + "$ref": "#/components/schemas/RestInterval" }, - "version": { - "$ref": "#/components/schemas/Version" + "path": { + "type": "string", + "title": "Path", + "description": "Path of resource to access on the server, without query.", + "minLength": 1, + "maxLength": 2048 }, - "status": { - "$ref": "#/components/schemas/WorkflowStatus" + "method": { + "type": "string", + "title": "Method", + "description": "HTTP method to use for each request.", + "enum": [ + "get", + "post" + ], + "default": "get" }, - "engineExecutionId": { - "$ref": "#/components/schemas/EngineExecutionId" + "body": { + "title": "Body", + "description": "Initial JSON body to send with request. Only applicable if method is `post`. Maximum of 10000 bytes total.\n" }, - "executedTasks": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TaskExecution" + "query": { + "type": "object", + "title": "Query", + "description": "Query parameters to include in request. String key -> String value. Limits: Maximum 255 characters per key, 2048 per value, and at most 32 pairs.\n", + "x-maxKeyLength": 255, + "maxProperties": 32, + "additionalProperties": { + "type": "string", + "maxLength": 2048 } }, - "input": { - "$ref": "#/components/schemas/ExecutionInput" + "headers": { + "type": "object", + "title": "Query", + "description": "Headers to include in request. String key -> String value. Limits: Maximum 255 characters per key, 2048 per value, and at most 32 pairs.\n", + "x-maxKeyLength": 255, + "maxProperties": 32, + "additionalProperties": { + "type": "string", + "maxLength": 2048 + } }, - "metadata": { - "$ref": "#/components/schemas/metadata" - } - }, - "required": [ - "id", - "workflowExternalId", - "workflowDefinition", - "status", - "engineExecutionId", - "createdTime", - "executedTasks", - "metadata" - ] - }, - "TransformationTaskParameters": { - "title": "Transformation Task Parameters", - "type": "object", - "properties": { - "transformation": { + "incrementalLoad": { "type": "object", - "description": "Parameters for the CDF Transformation task type.", - "properties": { - "externalId": { - "description": "The external id of the Transformation in the project.", - "oneOf": [ - { - "$ref": "#/components/schemas/CogniteExternalId" - }, - { - "$ref": "#/components/schemas/Reference" - } - ] + "discriminator": { + "mapping": { + "queryParam": "#/components/schemas/QueryParameterConfig", + "headerValue": "#/components/schemas/HeaderValueConfig", + "body": "#/components/schemas/BodyPaginationConfig" }, - "concurrencyPolicy": { - "type": "string", - "enum": [ - "fail", - "waitForCurrent", - "restartAfterCurrent" - ], - "default": "fail", - "description": "Determines the behavior of the task if the Transformation is already running.\n- fail: The task fails if another instance of the Transformation is currently running.\n- waitForCurrent: The task will pause and wait for the already running Transformation to complete. Once completed, the task is completed. This mode is useful for preventing redundant Transformation runs.\n- restartAfterCurrent: The task waits for the ongoing Transformation to finish. After completion, the task restarts the Transformation. This mode ensures that the most recent data can be used by following tasks.\n" - } + "propertyName": "type" }, - "required": [ - "externalId" - ] - } - } - }, - "FunctionTaskParameters": { - "title": "Function Task Parameters", - "type": "object", - "description": "Parameters for the Cognite Function task type.", - "properties": { - "function": { - "type": "object", - "properties": { - "externalId": { - "description": "The external id of the Cognite Function in the project.", - "oneOf": [ - { - "$ref": "#/components/schemas/CogniteExternalId" - }, - { - "$ref": "#/components/schemas/Reference" - } - ] + "oneOf": [ + { + "$ref": "#/components/schemas/QueryParameterConfig" }, - "data": { - "description": "Input data that will be passed to the Cognite Function. Limited to 100KB in size.", - "oneOf": [ - { - "type": "object", - "example": { - "key1": "value1", - "key2": "value2" - }, - "maxLength": 100000 - }, - { - "$ref": "#/components/schemas/Reference" - } - ] + { + "$ref": "#/components/schemas/HeaderValueConfig" + }, + { + "$ref": "#/components/schemas/BodyPaginationConfig" } - }, - "required": [ - "externalId" - ] + ], + "title": "Incremental load", + "description": "The format of the messages from the source. This is used to convert messages coming from the source system to a format that can be inserted into CDF." }, - "isAsyncComplete": { - "type": "boolean", - "default": false, - "description": "Defines if the execution of the task should be completed asynchronously.\n\n - If `false`, the status of the task will be set to `COMPLETED` when the Cognite Function call completes successfully. \n - If `true`, the task status will remain `IN_PROGRESS` even when the Cognite Function call completes successfully. \n It will then wait for an external process to update the task status directly using the task update endpoint. \n The task id required for the callback to update the task status is included in the input data of the Function with key \"cogniteOrchestrationTaskId\"." - } - } - }, - "CdfTaskParameters": { - "title": "CDF Task Parameters", - "type": "object", - "description": "Parameters for the CDF Request task type, which can be used to make a request to any CDF API.", - "properties": { - "cdfRequest": { + "pagination": { "type": "object", - "properties": { - "resourcePath": { - "description": "The path of the request. The path should be prefixed by `{cluster}.cognitedata.com/api/v1/project/{project}` based on the relevant cluster and project. \n\nExample: to list TimeSeries, the resourcePath would be `{cluster}.cognitedata.com/api/v1/project/{project}/timeseries/list`.\n", - "oneOf": [ - { - "type": "string", - "maxLength": 128 - }, - { - "$ref": "#/components/schemas/Reference" - } - ] + "discriminator": { + "mapping": { + "queryParam": "#/components/schemas/QueryParameterConfig", + "headerValue": "#/components/schemas/HeaderValueConfig", + "nextUrl": "#/components/schemas/NextUrlConfig", + "body": "#/components/schemas/BodyPaginationConfig" }, - "queryParameters": { - "oneOf": [ - { - "type": "object", - "additionalProperties": { - "type": "string", - "maxLength": 50 - }, - "maxItems": 5 - }, - { - "$ref": "#/components/schemas/Reference" - } - ] + "propertyName": "type" + }, + "oneOf": [ + { + "$ref": "#/components/schemas/QueryParameterConfig" }, - "method": { - "oneOf": [ - { - "type": "string", - "enum": [ - "POST", - "GET", - "PUT" - ] - }, - { - "$ref": "#/components/schemas/Reference" - } - ] + { + "$ref": "#/components/schemas/HeaderValueConfig" }, - "body": { - "description": "The body of the request. Limited to 100KB in size.", - "oneOf": [ - { - "type": "object", - "maxLength": 100000 - }, - { - "$ref": "#/components/schemas/Reference" - } - ] + { + "$ref": "#/components/schemas/NextUrlConfig" }, - "requestTimeoutInMillis": { - "oneOf": [ - { - "type": "number", - "default": 10000, - "minimum": 100 - }, - { - "$ref": "#/components/schemas/Reference" - } - ] + { + "$ref": "#/components/schemas/BodyPaginationConfig" } - }, - "required": [ - "resourcePath", - "method" - ] + ], + "title": "Incremental load", + "description": "The format of the messages from the source. This is used to convert messages coming from the source system to a format that can be inserted into CDF." + } + }, + "required": [ + "interval", + "path" + ] + }, + "JobConfig": { + "description": "Source specific job configuration. The type depends on the type of source, and is required for some sources.\n", + "title": "Job Config", + "oneOf": [ + { + "$ref": "#/components/schemas/MQTTJobConfig" + }, + { + "$ref": "#/components/schemas/KafkaJobConfig" } - } + ] }, - "DynamicTaskParameters": { - "title": "Dynamic Task Parameters", + "UpdateItem_JobConfig_": { + "additionalProperties": false, "type": "object", - "description": "Dynamic tasks allow the dynamic creation of additional tasks during a workflow execution.\n\nThere are two things needed to execute a dynamic task.\n- A list of task definitions (similar to the way tasks are defined in the workflow definition when creating a workflow version).\n- A workflow task prior to the dynamic task that outputs the above list\n", + "title": "UpdateItem_JobConfig", + "description": "Set a new source specific job config.", "properties": { - "dynamic": { - "type": "object", - "description": "Tasks should reference a list of task definitions, defined exactly like they are during version creation.", - "properties": { - "tasks": { - "$ref": "#/components/schemas/Reference" - } - } + "set": { + "$ref": "#/components/schemas/JobConfig" } } }, - "SubworkflowTaskParameters": { - "title": "Subworkflow Task Parameters", - "type": "object", + "CreateJob": { + "additionalProperties": false, "properties": { - "subworkflow": { - "type": "object", - "properties": { - "tasks": { - "description": "A list of tasks with their inputs and interdependencies. Similar to the way tasks are defined in a workflow definition.\n", - "type": "array", - "items": { - "$ref": "#/components/schemas/TaskDefinition" - }, - "maxItems": 100, - "minItems": 1 - } + "externalId": { + "$ref": "#/components/schemas/CogniteExternalId" + }, + "destinationId": { + "title": "Destination ID", + "description": "ID of the destination this job should write to.", + "type": "string", + "maxLength": 255 + }, + "sourceId": { + "title": "Source ID", + "description": "ID of the source this job should read from.", + "type": "string", + "maxLength": 255 + }, + "format": { + "discriminator": { + "mapping": { + "cognite": "#/components/schemas/CogniteFormat", + "custom": "#/components/schemas/WriteCustomFormat", + "rockwell": "#/components/schemas/RockwellFormat", + "value": "#/components/schemas/ValueFormat" + }, + "propertyName": "type" }, - "required": [ - "tasks" - ] + "oneOf": [ + { + "$ref": "#/components/schemas/RockwellFormat" + }, + { + "$ref": "#/components/schemas/CogniteFormat" + }, + { + "$ref": "#/components/schemas/WriteCustomFormat" + }, + { + "$ref": "#/components/schemas/ValueFormat" + } + ], + "title": "Format", + "description": "The format of the messages from the source. This is used to convert messages coming from the source system to a format that can be inserted into CDF.", + "type": "object" + }, + "config": { + "$ref": "#/components/schemas/JobConfig" } - } + }, + "required": [ + "sourceId", + "destinationId", + "externalId", + "format", + "config" + ], + "title": "CreateJob", + "type": "object" }, - "TransformationTaskOutput": { - "title": "Transformation Task Output", - "type": "object", + "CreateMqttV3Source": { + "additionalProperties": false, "properties": { - "jobId": { + "type": { + "enum": [ + "mqtt3" + ], + "title": "Type", + "type": "string", + "description": "Source type." + }, + "externalId": { + "$ref": "#/components/schemas/CogniteExternalId" + }, + "host": { + "title": "Host", + "type": "string", + "description": "Host or IP address of the MQTT broker to connect to.", + "maxLength": 200 + }, + "port": { "type": "integer", - "format": "int64", - "description": "Job ID of the Transformation called." + "title": "Port", + "default": 1883, + "description": "Port on the MQTT broker to connect to.", + "minimum": 1, + "maximum": 65535 + }, + "authentication": { + "$ref": "#/components/schemas/MqttAuthenticationWrite" + }, + "useTls": { + "type": "boolean", + "title": "UseTls", + "description": "If true, use TLS when connecting to the broker." + }, + "caCertificate": { + "$ref": "#/components/schemas/CACertificate" + }, + "authCertificate": { + "$ref": "#/components/schemas/AuthCertificate" } }, "required": [ - "jobId" - ] + "type", + "externalId", + "host" + ], + "title": "CreateMqttV3Source", + "type": "object" }, - "FunctionTaskOutput": { - "title": "Function Task Output", - "type": "object", + "CreateMqttV5Source": { + "additionalProperties": false, "properties": { - "callId": { - "type": "integer", - "format": "int64", - "description": "The callId of the Cognite Function call instance." + "type": { + "enum": [ + "mqtt5" + ], + "title": "Type", + "type": "string", + "description": "Source type." }, - "functionId": { + "externalId": { + "$ref": "#/components/schemas/CogniteExternalId" + }, + "host": { + "title": "Host", + "type": "string", + "description": "Host or IP address of the MQTT broker to connect to.", + "maxLength": 200 + }, + "port": { "type": "integer", - "format": "int64", - "description": "The functionId of the Cognite Function called." + "title": "Port", + "default": 1883, + "description": "Port on the MQTT broker to connect to.", + "minimum": 1, + "maximum": 65535 }, - "response": { - "type": "object", - "description": "The response of the function call. Limited to 100KB in size." + "authentication": { + "$ref": "#/components/schemas/MqttAuthenticationWrite" + }, + "useTls": { + "type": "boolean", + "title": "UseTls", + "description": "If true, use TLS when connecting to the broker." + }, + "caCertificate": { + "$ref": "#/components/schemas/CACertificate" + }, + "authCertificate": { + "$ref": "#/components/schemas/AuthCertificate" } }, "required": [ - "callId", - "functionId", - "response" - ] + "type", + "externalId", + "host" + ], + "title": "CreateMqttV5Source", + "type": "object" }, - "CdfTaskOutput": { - "title": "CDF Task Output", - "type": "object", + "CreateRestSource": { + "additionalProperties": false, "properties": { - "response": { + "type": { + "enum": [ + "rest" + ], + "title": "Type", + "type": "string", + "description": "Source type." + }, + "externalId": { + "$ref": "#/components/schemas/CogniteExternalId" + }, + "host": { + "title": "Host", + "type": "string", + "description": "Host or IP address to connect to.", + "maxLength": 200 + }, + "scheme": { + "title": "Scheme", + "type": "string", + "description": "Type of connection to establish", + "enum": [ + "http", + "https" + ], + "default": "https" + }, + "port": { + "type": "integer", + "title": "Port", + "description": "Port on server to connect to. Uses default ports based on the scheme if omitted.", + "minimum": 1, + "maximum": 65535 + }, + "caCertificate": { + "$ref": "#/components/schemas/CACertificate" + }, + "authentication": { + "discriminator": { + "mapping": { + "basic": "#/components/schemas/CreateBasicAuthentication", + "header": "#/components/schemas/CreateHeaderValueAuthentication", + "query": "#/components/schemas/CreateQueryParamAuthentication", + "clientCredentials": "#/components/schemas/CreateClientCredentialsAuthentication" + }, + "propertyName": "type" + }, "oneOf": [ { - "type": "string" + "$ref": "#/components/schemas/CreateBasicAuthentication" }, { - "type": "object" + "$ref": "#/components/schemas/CreateHeaderValueAuthentication" + }, + { + "$ref": "#/components/schemas/CreateQueryParamAuthentication" + }, + { + "$ref": "#/components/schemas/CreateClientCredentialsAuthentication" } ], - "description": "The body of the response. Will be a a JSON object if content-type is application/json, otherwise it will be a string." + "title": "Authentication", + "description": "Authentication details for source" + } + }, + "required": [ + "type", + "externalId", + "host" + ], + "title": "CreateRestSource", + "type": "object" + }, + "CreateProtoFile": { + "additionalProperties": false, + "description": "Definition of a protobuf file used for loading input to the mapping.", + "properties": { + "fileName": { + "type": "string", + "title": "File Name", + "format": "[a-zA-Z0-9_-]+\\.proto", + "maxLength": 128, + "description": "Name of protobuf file. Must contain only letters, numbers, underscores, and hyphens, and must end with '.proto'." }, - "statusCode": { - "type": "integer", - "description": "The HTTP status code of the response." + "content": { + "type": "string", + "title": "Content", + "description": "Protobuf file content. Must be a valid protobuf file.", + "maxLength": 10000 } - } + }, + "required": [ + "fileName", + "content" + ] }, - "DynamicTaskOutput": { - "title": "Dynamic Task Output", - "type": "object", + "ProtoFile": { + "additionalProperties": false, + "description": "Description of a protobuf file used for loading input to the mapping.", "properties": { - "dynamicTasks": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TaskDefinition" - }, - "minItems": 0, - "maxItems": 100 + "fileName": { + "type": "string", + "title": "File Name", + "format": "[a-zA-Z0-9_-]+\\.proto", + "maxLength": 128, + "description": "Name of protobuf file. Must contain only letters, numbers, underscores, and hyphens, and must end with '.proto'." } - } + }, + "required": [ + "fileName" + ] }, - "WorkflowDefinitionResponse": { - "title": "Workflow Definition", - "type": "object", + "CreateProtobufConfig": { + "additionalProperties": false, + "description": "List of protobuf files used to define input to the mapping. This will be compiled to a collection of definitions which will be used to convert the input to JSON.", + "title": "ProtoBuf", "properties": { - "hash": { - "type": "string" + "type": { + "type": "string", + "enum": [ + "protobuf" + ], + "description": "Input type", + "title": "Type" }, - "description": { + "messageName": { "type": "string", - "maxLength": 500 + "description": "Name of root message in the protobuf files.", + "maxLength": 128, + "title": "Message Name" }, - "tasks": { + "files": { "type": "array", + "maxItems": 20, + "minItems": 1, + "description": "List of protobuf files as text.", "items": { - "$ref": "#/components/schemas/TaskDefinition" + "$ref": "#/components/schemas/CreateProtoFile" } } }, "required": [ - "hash", - "tasks" + "messageName", + "files", + "type" ] }, - "WorkflowVersionView": { - "title": "Workflow Version", + "CreateInputConfig": { "type": "object", - "properties": { - "workflowExternalId": { - "$ref": "#/components/schemas/WorkflowExternalId" + "description": "Optionally set input mapping input type. This defaults to json if left out. Each input type is converted to JSON before being passed to the mapping expression.", + "discriminator": { + "mapping": { + "protobuf": "#/components/schemas/CreateProtobufConfig", + "csv": "#/components/schemas/CsvConfig", + "xml": "#/components/schemas/XmlConfig", + "json": "#/components/schemas/JsonConfig" }, - "version": { - "$ref": "#/components/schemas/Version" + "propertyName": "type" + }, + "oneOf": [ + { + "$ref": "#/components/schemas/CreateProtobufConfig" }, - "workflowDefinition": { - "$ref": "#/components/schemas/WorkflowDefinitionResponse" + { + "$ref": "#/components/schemas/CsvConfig" + }, + { + "$ref": "#/components/schemas/XmlConfig" + }, + { + "$ref": "#/components/schemas/JsonConfig" } - } - }, - "Version": { - "type": "string", - "description": "Identifier for a version. Must be unique for the workflow. No trailing or leading whitespace and no null characters allowed.", - "maxLength": 255 - }, - "WorkflowExternalId": { - "type": "string", - "description": "Identifier for a workflow. Must be unique for the project. No trailing or leading whitespace and no null characters allowed.", - "maxLength": 255 - }, - "WorkflowExecutionId": { - "type": "string", - "description": "UUIDv4 identifier for a workflow execution.", - "maxLength": 36, - "minLength": 36, - "example": "059edaa4-a17a-4102-910e-2c3591500cce" + ] }, - "WorkflowFilter": { + "InputConfig": { "type": "object", - "description": "If the version is not specified, all versions for the workflow will be included, ordered by createdTime.", - "properties": { - "externalId": { - "$ref": "#/components/schemas/WorkflowExternalId" + "description": "Optionally set input mapping input type. This defaults to json if left out. Any input type is converted to JSON before being passed to the mapping expression.", + "discriminator": { + "mapping": { + "protobuf": "#/components/schemas/ProtobufConfig", + "csv": "#/components/schemas/CsvConfig", + "xml": "#/components/schemas/XmlConfig", + "json": "#/components/schemas/JsonConfig" }, - "version": { - "$ref": "#/components/schemas/Version" - } + "propertyName": "type" }, - "required": [ - "externalId" + "oneOf": [ + { + "$ref": "#/components/schemas/ProtobufConfig" + }, + { + "$ref": "#/components/schemas/CsvConfig" + }, + { + "$ref": "#/components/schemas/XmlConfig" + }, + { + "$ref": "#/components/schemas/JsonConfig" + } ] }, - "ListExecutionsFilter": { - "title": "List Executions Filter", + "CsvConfig": { + "additionalProperties": false, "type": "object", + "title": "CSV", + "description": "Transform the input from a CSV (Comma Separated Values) file to a list of JSON objects. The input to the mapping will be a list on the form `[{\\\"header1\\\": \\\"value1\\\", ...}, ...]`.\n", "properties": { - "workflowFilters": { - "type": "array", - "description": "Allows filtering executions by their workflows (and optionally version identifiers). If no workflowFilters are specified, all executions for all workflows will be included, ordered by createdTime.", - "items": { - "$ref": "#/components/schemas/WorkflowFilter" - }, - "maxItems": 100 - }, - "createdTimeStart": { - "type": "integer", - "minimum": 0, - "description": "epoch timestamp in milliseconds" + "type": { + "type": "string", + "enum": [ + "csv" + ], + "description": "Input type", + "title": "Type" }, - "createdTimeEnd": { - "type": "integer", - "minimum": 0, - "description": "epoch timestamp in milliseconds" + "delimiter": { + "type": "string", + "description": "A single ASCII character used as the separator in the CSV file. Defaults to `,`", + "maxLength": 1, + "minLength": 1, + "title": "Delimiter" }, - "status": { + "customKeys": { "type": "array", + "minItems": 1, + "maxItems": 20, + "description": "List of headers. If this is not set, the headers will be retrieved from the CSV file.", "items": { - "$ref": "#/components/schemas/WorkflowStatus" - }, - "description": "workflow execution status", - "uniqueItems": true + "type": "string", + "description": "CSV file header value.", + "title": "CSV_Header" + } } - } + }, + "required": [ + "type" + ] }, - "ListExecutionsQuery": { + "XmlConfig": { + "additionalProperties": false, + "type": "object", + "title": "XML", + "description": "Transform the input from an XML file to a JSON object.\n", + "properties": { + "type": { + "type": "string", + "enum": [ + "xml" + ], + "description": "Input type", + "title": "Type" + } + }, + "required": [ + "type" + ] + }, + "JsonConfig": { + "additionalProperties": false, "type": "object", + "description": "Treat the input as UTF-8 encoded JSON.", + "title": "JSON", "properties": { - "filter": { - "$ref": "#/components/schemas/ListExecutionsFilter" - }, - "limit": { - "$ref": "#/components/schemas/limit" - }, - "cursor": { - "$ref": "#/components/schemas/cursor" + "type": { + "type": "string", + "enum": [ + "json" + ], + "description": "Input type", + "title": "Type" } }, "required": [ - "filter" + "type" ] }, - "ListVersionsFilter": { - "type": "object", + "ProtobufConfig": { + "additionalProperties": false, + "description": "List of protobuf files used to define input to the mapping. This will be compiled to a collection of definitions which will be used to convert the input to JSON.", + "title": "ProtoBuf", "properties": { - "workflowFilters": { + "type": { + "type": "string", + "enum": [ + "protobuf" + ], + "description": "Input type", + "title": "Type" + }, + "messageName": { + "type": "string", + "description": "Name of root message in the protobuf files.", + "maxLength": 128, + "title": "Message Name" + }, + "files": { "type": "array", - "maxItems": 100, - "description": "Allows filtering versions by their specific workflows (and optionally version identifiers). If no workflowFilters are specified, all versions for all workflows will be included, ordered by createdTime.", + "maxItems": 20, + "minItems": 1, "items": { - "$ref": "#/components/schemas/WorkflowFilter" + "$ref": "#/components/schemas/ProtoFile" } } - } + }, + "required": [ + "messageName", + "files", + "type" + ] }, - "ListVersionsQuery": { + "UpdateItem_InputConfig_": { + "additionalProperties": false, + "properties": { + "set": { + "$ref": "#/components/schemas/CreateInputConfig" + } + }, + "required": [ + "set" + ], + "title": "UpdateItem_InputConfig", "type": "object", + "description": "Set a new mapping input." + }, + "CreateMapping": { + "additionalProperties": false, "properties": { - "filter": { - "$ref": "#/components/schemas/ListVersionsFilter" + "externalId": { + "$ref": "#/components/schemas/CogniteExternalId" }, - "limit": { - "$ref": "#/components/schemas/limit" + "mapping": { + "$ref": "#/components/schemas/CustomMapping" }, - "cursor": { - "$ref": "#/components/schemas/cursor" + "input": { + "$ref": "#/components/schemas/CreateInputConfig" + }, + "published": { + "title": "Published", + "type": "boolean", + "description": "Whether this mapping is published and should be available to be used in jobs." } }, "required": [ - "filter" - ] - }, - "Reference": { - "type": "string", - "description": "A Reference is an expression that allows dynamically injecting input to a task during execution. References can be used to reference the input of the Workflow, the output of a previous task in the Workflow, or the input of a previous task in the Workflow. Note that the injected value must be valid in the context of the property it is injected into.\nExample Task reference: ${myTaskExternalId.output.someKey} Example Workflow input reference: ${workflow.input.myKey}" - }, - "WorkflowStatus": { - "type": "string", - "enum": [ - "RUNNING", - "COMPLETED", - "FAILED", - "TIMED_OUT", - "TERMINATED", - "PAUSED" - ] + "externalId", + "mapping", + "published" + ], + "title": "CreateMapping", + "type": "object" }, - "WorkflowExecutionResponse": { - "title": "Workflow Definition Execution Response", - "type": "object", + "CustomFormat": { + "additionalProperties": false, "properties": { - "id": { - "$ref": "#/components/schemas/WorkflowExecutionId" + "type": { + "enum": [ + "custom" + ], + "title": "Type", + "type": "string", + "description": "Format type." }, - "workflowExternalId": { - "$ref": "#/components/schemas/WorkflowExternalId" + "mappingId": { + "type": "string", + "title": "MappingId", + "description": "The ID of the mapping used for this format.", + "maxLength": 255 }, - "version": { - "$ref": "#/components/schemas/Version" + "encoding": { + "$ref": "#/components/schemas/EncodingType" }, - "status": { - "$ref": "#/components/schemas/WorkflowStatus" + "compression": { + "$ref": "#/components/schemas/CompressionType" }, - "engineExecutionId": { - "$ref": "#/components/schemas/EngineExecutionId" + "expression": { + "type": "string", + "title": "Expression", + "description": "The transformation expression of the mapping given by `mappingId`.", + "maxLength": 2000 + } + }, + "required": [ + "type", + "mappingId", + "expression" + ], + "title": "CustomFormat", + "type": "object" + }, + "Destination": { + "additionalProperties": false, + "properties": { + "externalId": { + "$ref": "#/components/schemas/CogniteExternalId" }, - "createdTime": { - "$ref": "#/components/schemas/EpochTimestamp" + "sessionId": { + "type": "integer", + "title": "Session ID", + "minimum": 1, + "maximum": 9007199254740991, + "format": "int64", + "description": "ID of the session tied to this destination." }, - "startTime": { - "$ref": "#/components/schemas/EpochTimestamp" + "targetDataSetId": { + "type": "integer", + "title": "Data Set ID", + "minimum": 1, + "maximum": 9007199254740991, + "format": "int64", + "description": "Data set ID the created items are inserted into, if applicable." }, - "endTime": { + "createdTime": { "$ref": "#/components/schemas/EpochTimestamp" }, - "reasonForIncompletion": { - "$ref": "#/components/schemas/ReasonForIncompletion" + "lastUpdatedTime": { + "$ref": "#/components/schemas/EpochTimestamp" + } + }, + "required": [ + "externalId", + "lastUpdatedTime", + "createdTime" + ], + "title": "Destination", + "type": "object" + }, + "DestinationUpdateItem": { + "additionalProperties": false, + "properties": { + "externalId": { + "$ref": "#/components/schemas/CogniteExternalId" }, - "metadata": { - "$ref": "#/components/schemas/metadata" + "update": { + "$ref": "#/components/schemas/UpdateDestination" } }, "required": [ - "id", - "workflowExternalId", - "status", - "engineExecutionId", - "createdTime", - "metadata" - ] + "externalId", + "update" + ], + "title": "DestinationUpdateItem", + "type": "object" }, - "TaskExecutionId": { - "type": "string", - "description": "UUIDv4 identifier for the execution of a workflow task.", - "minLength": 36, - "maxLength": 36 + "EncodingType": { + "enum": [ + "utf16", + "utf16le" + ], + "title": "EncodingType", + "description": "The type of encoding to convert from.\nOptions are `utf16` (UTF-16 big endian), and `utf16le` (UTF-16 little endian).", + "type": "string" }, - "EngineExecutionId": { - "type": "string", - "description": "Additional UUIDv4 identifier for an execution. Useful for Cognite support to diagnose issues.", - "minLength": 36, - "maxLength": 36 + "CompressionType": { + "enum": [ + "gzip" + ], + "title": "CompressionType", + "description": "The compression applied to incoming messages. The messages are decompressed before being passed to transformations.\nThis is usually not relevant for REST, where this is handled automatically, but MQTT, Kafka, and EventHub have no such mechanisms.", + "type": "string" }, - "TaskExecution": { - "title": "Task Execution", - "type": "object", + "EventHubSource": { + "additionalProperties": false, "properties": { - "id": { - "$ref": "#/components/schemas/TaskExecutionId" + "type": { + "enum": [ + "eventhub" + ], + "title": "Type", + "type": "string", + "description": "Source type." }, "externalId": { "$ref": "#/components/schemas/CogniteExternalId" }, - "status": { + "host": { + "title": "Host", "type": "string", - "enum": [ - "IN_PROGRESS", - "CANCELED", - "FAILED", - "FAILED_WITH_TERMINAL_ERROR", - "COMPLETED", - "COMPLETED_WITH_ERRORS", - "SCHEDULED", - "TIMED_OUT", - "SKIPPED" - ] + "description": "URL of the event hub consumer endpoint.", + "example": "iothub-ns-myhub-12345678-12345abcde.servicebus.windows.net", + "maxLength": 200 }, - "taskType": { + "eventHubName": { + "title": "EventHubName", "type": "string", - "enum": [ - "function", - "transformation", - "cdf", - "dynamic", - "subworkflow" - ] - }, - "startTime": { - "$ref": "#/components/schemas/EpochTimestamp" + "description": "Name of the event hub", + "example": "myhub", + "maxLength": 200 }, - "endTime": { - "$ref": "#/components/schemas/EpochTimestamp" + "keyName": { + "title": "KeyName", + "type": "string", + "description": "The name of the Event Hub key to use.", + "example": "iothubowner", + "maxLength": 200 }, - "input": { - "$ref": "#/components/schemas/ExecutionInput" + "consumerGroup": { + "type": "string", + "title": "ConsumerGroup", + "description": "The event hub consumer group to use. Microsoft recommends having a distinct consumer group for each application consuming data from event hub. If left out, this uses the default consumer group.", + "maxLength": 200 }, - "output": { - "oneOf": [ - { - "$ref": "#/components/schemas/FunctionTaskOutput" - }, - { - "$ref": "#/components/schemas/TransformationTaskOutput" - }, - { - "$ref": "#/components/schemas/CdfTaskOutput" - }, - { - "$ref": "#/components/schemas/DynamicTaskOutput" - } - ] + "createdTime": { + "$ref": "#/components/schemas/EpochTimestamp" }, - "reasonForIncompletion": { - "$ref": "#/components/schemas/ReasonForIncompletion" + "lastUpdatedTime": { + "$ref": "#/components/schemas/EpochTimestamp" } }, "required": [ - "id", + "type", "externalId", - "status", - "taskType", - "input", - "output" - ] - }, - "nextCursor": { - "description": "Cursor to get the next page of results. If not present, no more results are available.", - "type": "string", - "example": "4zj0Vy2fo0NtNMb229mI9r1V3YG5NBL752kQz1cKtwo" + "host", + "keyName", + "eventHubName", + "createdTime", + "lastUpdatedTime" + ], + "title": "EventHubSource", + "type": "object" }, - "cursor": { - "type": "string", - "example": "4zj0Vy2fo0NtNMb229mI9r1V3YG5NBL752kQz1cKtwo", - "description": "Cursor to use for paging through results. This cursor is returned in the response of a previous request as `nextCursor`. If not specified, start from the first page of results." + "ExternalIdWrapper": { + "additionalProperties": false, + "properties": { + "externalId": { + "$ref": "#/components/schemas/CogniteExternalId" + } + }, + "required": [ + "externalId" + ], + "title": "ExternalIdWrapper", + "type": "object" }, - "limit": { - "type": "integer", - "minimum": 1, - "maximum": 1000, - "default": 100, - "description": "The maximum number of results to return." + "ItemsWithIgnoreUnknownIds_ExternalId_": { + "additionalProperties": false, + "properties": { + "items": { + "items": { + "$ref": "#/components/schemas/ExternalIdWrapper" + }, + "title": "Items", + "type": "array", + "maxItems": 100, + "minItems": 1 + }, + "ignoreUnknownIds": { + "type": "boolean", + "title": "IgnoreUnknownIds", + "description": "Ignore IDs and external IDs that are not found" + } + }, + "required": [ + "items" + ], + "title": "ItemsWithIgnoreUnknownIds_ExternalId", + "type": "object" }, - "metadata": { - "type": "object", - "maxProperties": 10, - "additionalProperties": { - "type": "string", - "maxLength": 255 + "ItemsWithIgnoreUnknownIdsAndForce_ExternalId_": { + "additionalProperties": false, + "properties": { + "items": { + "items": { + "$ref": "#/components/schemas/ExternalIdWrapper" + }, + "title": "Items", + "type": "array", + "maxItems": 100, + "minItems": 1 + }, + "ignoreUnknownIds": { + "type": "boolean", + "title": "IgnoreUnknownIds", + "description": "Ignore IDs and external IDs that are not found." + }, + "force": { + "type": "boolean", + "title": "Force", + "description": "Delete any jobs associated with each item." + } }, - "description": "Custom, application-specific metadata. String key -> String value.\nKeys have a maximum length of 32 characters, values a maximum of 255, \nand there can be a maximum of 10 key-value pairs.\n" + "required": [ + "items" + ], + "title": "ItemsWithIgnoreUnknownIdsAndForce_ExternalId", + "type": "object" }, - "ReasonForIncompletion": { - "type": "string", - "description": "Human-readable reason for terminal failure of a workflow task." + "Items_CreateSource_": { + "additionalProperties": false, + "properties": { + "items": { + "items": { + "discriminator": { + "mapping": { + "eventhub": "#/components/schemas/CreateEventHubSource", + "mqtt3": "#/components/schemas/CreateMqttV3Source", + "mqtt5": "#/components/schemas/CreateMqttV5Source" + }, + "propertyName": "type" + }, + "oneOf": [ + { + "$ref": "#/components/schemas/CreateMqttV3Source" + }, + { + "$ref": "#/components/schemas/CreateMqttV5Source" + }, + { + "$ref": "#/components/schemas/CreateEventHubSource" + } + ] + }, + "title": "Items", + "type": "array", + "minItems": 1, + "maxItems": 100 + } + }, + "required": [ + "items" + ], + "title": "CreateSourceList", + "type": "object" }, - "ExecutionInput": { - "type": "object", - "example": { - "key1": "value1", - "key2": "value2" + "Items_Source_": { + "additionalProperties": false, + "properties": { + "items": { + "items": { + "discriminator": { + "mapping": { + "eventhub": "#/components/schemas/EventHubSource", + "mqtt3": "#/components/schemas/MqttV3Source", + "mqtt5": "#/components/schemas/MqttV5Source" + }, + "propertyName": "type" + }, + "oneOf": [ + { + "$ref": "#/components/schemas/MqttV3Source" + }, + { + "$ref": "#/components/schemas/MqttV5Source" + }, + { + "$ref": "#/components/schemas/EventHubSource" + } + ] + }, + "title": "Items", + "type": "array", + "maxItems": 100, + "minItems": 0 + } }, - "description": "Input data to the workflow. The content of the input data can be used as input to the workflow tasks using references. The input data should be in JSON format, and is limited to 100KB in size." + "required": [ + "items" + ], + "title": "SourceList", + "type": "object" }, - "CancelExecution": { - "title": "Workflow cancellation request", - "type": "object", + "ItemsWithCursor_Source_": { + "additionalProperties": false, "properties": { - "reason": { + "items": { + "items": { + "discriminator": { + "mapping": { + "eventhub": "#/components/schemas/EventHubSource", + "mqtt3": "#/components/schemas/MqttV3Source", + "mqtt5": "#/components/schemas/MqttV5Source" + }, + "propertyName": "type" + }, + "oneOf": [ + { + "$ref": "#/components/schemas/MqttV3Source" + }, + { + "$ref": "#/components/schemas/MqttV5Source" + }, + { + "$ref": "#/components/schemas/EventHubSource" + } + ] + }, + "title": "Items", + "type": "array", + "maxItems": 100, + "minItems": 0 + }, + "nextCursor": { "type": "string", - "description": "Human-readable reason for the cancellation.", - "default": "cancelled", - "maxLength": 500 + "title": "Next cursor", + "description": "Cursor for pagination" } - } + }, + "required": [ + "items" + ], + "title": "SourceListWithCursor", + "type": "object" }, - "RetryExecution": { - "title": "Workflow retry request", - "type": "object", + "Items_UpdateSource_": { + "additionalProperties": false, "properties": { - "authentication": { - "$ref": "#/components/schemas/Authentication" + "items": { + "items": { + "discriminator": { + "mapping": { + "eventhub": "#/components/schemas/UpdateEventHubSourceItem", + "mqtt3": "#/components/schemas/UpdateMqttV3SourceItem", + "mqtt5": "#/components/schemas/UpdateMqttV5SourceItem" + }, + "propertyName": "type" + }, + "oneOf": [ + { + "$ref": "#/components/schemas/UpdateMqttV3SourceItem" + }, + { + "$ref": "#/components/schemas/UpdateMqttV5SourceItem" + }, + { + "$ref": "#/components/schemas/UpdateEventHubSourceItem" + } + ] + }, + "title": "Items", + "type": "array", + "minItems": 1, + "maxItems": 100 } }, "required": [ - "authentication" - ] + "items" + ], + "title": "UpdateSourceList", + "type": "object" }, - "Authentication": { - "type": "object", + "Items_CreateDestination_": { + "additionalProperties": false, "properties": { - "nonce": { - "type": "string", - "description": "The nonce of a sessions token, which can be obtained using client credentials authentication flow. The nonce's session must be a root session, i.e. it must not be a child of another session. See [Sessions API](https://api-docs.cognite.com/20230101/tag/Sessions) documentation for more information.", - "example": "hOfy4Zop4N2SPRfl" + "items": { + "items": { + "$ref": "#/components/schemas/CreateDestination" + }, + "title": "Items", + "type": "array", + "minLength": 1, + "maxLength": 100 } }, "required": [ - "nonce" - ] + "items" + ], + "title": "CreateDestination list", + "type": "object" }, - "CertificateDetails": { + "Items_CreateJob_": { "additionalProperties": false, - "title": "CertificatDetails", - "type": "object", - "description": "Excerpt of certificate details", "properties": { - "thumbprint": { - "title": "Thumbprint", - "type": "string", - "description": "A thumbprint of the certificate provided", - "maxLength": 50 - }, - "expiresAt": { - "title": "ExpiresAt", - "type": "integer", - "description": "The expiry date of the certificate" + "items": { + "items": { + "$ref": "#/components/schemas/CreateJob" + }, + "title": "Items", + "type": "array", + "minItems": 1, + "maxItems": 100 } }, "required": [ - "thumbprint", - "expiresAt" - ] + "items" + ], + "title": "Items[CreateJob]", + "type": "object" }, - "AuthCertificate": { + "Items_CreateMapping_": { "additionalProperties": false, - "title": "AuthenticationCertificate", - "type": "object", - "description": "Authentication certificate (if configured) used to authenticate to source.", "properties": { - "key": { - "title": "Certificate key", - "type": "string", - "description": "The key for the certificate", - "maxLength": 100000 - }, - "keyPassword": { - "title": "Certificate key password", - "type": "string", - "description": "The password for the certificate key", + "items": { + "items": { + "$ref": "#/components/schemas/CreateMapping" + }, + "title": "Items", + "type": "array", "minLength": 1, - "maxLength": 255 - }, - "type": { - "$ref": "#/components/schemas/CertificateType" - }, - "certificate": { - "title": "Certificate", - "type": "string", - "description": "Base 64 encoded der certificate, or a pem certificate with headers.", - "maxLength": 100000 + "maxLength": 100 } }, "required": [ - "type", - "certificate", - "key" - ] + "items" + ], + "title": "Items[CreateMapping]", + "type": "object" }, - "CACertificate": { + "Items_DestinationUpdateItem_": { "additionalProperties": false, "properties": { - "type": { - "$ref": "#/components/schemas/CertificateType" - }, - "certificate": { - "title": "Certificate", - "type": "string", - "description": "Base 64 encoded der certificate, or a pem certificate with headers.", - "maxLength": 100000 + "items": { + "items": { + "$ref": "#/components/schemas/DestinationUpdateItem" + }, + "title": "Items", + "type": "array", + "maxItems": 100, + "minItems": 1 } }, "required": [ - "certificate", - "type" + "items" ], - "title": "CACertificate", - "type": "object", - "description": "Custom certificate authority certificate to let the source use a self signed certificate." + "title": "Items[DestinationUpdateItem]", + "type": "object" }, - "CertificateType": { - "enum": [ - "der", - "pem" + "Items_Destination_": { + "additionalProperties": false, + "properties": { + "items": { + "items": { + "$ref": "#/components/schemas/Destination" + }, + "title": "Items", + "type": "array", + "maxItems": 100, + "minItems": 0 + } + }, + "required": [ + "items" ], - "title": "CertificateType", - "type": "string", - "description": "Type of certificate in the `certificate` field." + "title": "DestinationList", + "type": "object" }, - "CogniteFormat": { + "ItemsWithCursor_Destination_": { "additionalProperties": false, "properties": { - "type": { - "enum": [ - "cognite" - ], - "title": "Type", - "type": "string", - "description": "Format type." - }, - "preProcessingLayers": { - "$ref": "#/components/schemas/PreProcessingLayers" + "items": { + "items": { + "$ref": "#/components/schemas/Destination" + }, + "title": "Items", + "type": "array", + "maxItems": 100, + "minItems": 0 }, - "prefix": { - "$ref": "#/components/schemas/PrefixConfig" + "nextCursor": { + "type": "string", + "title": "Next cursor", + "description": "Cursor for pagination" } }, "required": [ - "type" + "items" ], - "title": "CogniteFormat", - "type": "object", - "description": "Convert from the special cognite format to CDF datapoints." + "title": "DestinationListWithCursor", + "type": "object" }, - "CreateDestination": { + "Items_MinimalJob_": { "additionalProperties": false, "properties": { - "externalId": { - "title": "External ID", - "$ref": "#/components/schemas/CogniteExternalId" - }, - "credentials": { - "$ref": "#/components/schemas/SessionCredentials" - }, - "datasetId": { - "type": "integer", - "title": "Data Set ID", - "minimum": 1, - "maximum": 9007199254740991, - "format": "int64", - "description": "Data set ID the created items are inserted into, if applicable." + "items": { + "items": { + "$ref": "#/components/schemas/MinimalJob" + }, + "title": "Items", + "type": "array", + "maxLength": 100, + "minLength": 0 } }, "required": [ - "externalId" + "items" ], - "title": "CreateDestination", + "title": "JobList", "type": "object" }, - "CreateEventHubSource": { + "ItemsWithCursor_MinimalJob_": { "additionalProperties": false, "properties": { - "type": { - "enum": [ - "eventhub" - ], - "title": "Type", - "type": "string", - "description": "Source type." - }, - "externalId": { - "$ref": "#/components/schemas/CogniteExternalId" - }, - "host": { - "title": "Host", - "type": "string", - "description": "Host name or IP address of the event hub consumer endpoint.", - "example": "iothub-ns-myhub-12345678-12345abcde.servicebus.windows.net", - "maxLength": 200 - }, - "eventHubName": { - "title": "Eventhubname", - "type": "string", - "description": "Name of the event hub", - "example": "myhub", - "maxLength": 200 - }, - "keyName": { - "title": "KeyName", - "type": "string", - "description": "The name of the Event Hub key to use for authentication.", - "example": "iothubowner", - "maxLength": 200 - }, - "keyValue": { - "title": "KeyValue", - "type": "string", - "description": "Value of the Event Hub key to use for authentication.", - "maxLength": 200 + "items": { + "items": { + "$ref": "#/components/schemas/MinimalJob" + }, + "title": "Items", + "type": "array", + "maxLength": 100, + "minLength": 0 }, - "consumerGroup": { + "nextCursor": { "type": "string", - "title": "ConsumerGroup", - "description": "The event hub consumer group to use. Microsoft recommends having a distinct consumer group for each application consuming data from event hub. If left out, this uses the default consumer group.", - "maxLength": 200 + "title": "Next cursor", + "description": "Cursor for pagination" } }, "required": [ - "type", - "externalId", - "host", - "keyName", - "eventHubName", - "keyValue" + "items" ], - "title": "CreateEventHubSource", + "title": "JobList", "type": "object" }, - "MQTTJobConfig": { + "Items_MappingUpdateItem_": { "additionalProperties": false, - "type": "object", - "title": "MQTT", - "required": [ - "topicFilter" - ], "properties": { - "topicFilter": { - "title": "TopicFilter", - "type": "string", - "description": "Topic filter.", - "maxLength": 200 + "items": { + "items": { + "$ref": "#/components/schemas/MappingUpdateItem" + }, + "title": "Items", + "type": "array", + "minItems": 1, + "maxItems": 100 } - } - }, - "KafkaJobConfig": { - "additionalProperties": false, - "type": "object", - "title": "Kafka", + }, "required": [ - "topic" + "items" ], - "properties": { - "topic": { - "title": "Topic", - "type": "string", - "description": "Kafka topic to connect to", - "maxLength": 200 - }, - "partitions": { - "title": "Partitions", - "type": "integer", - "minimum": 1, - "maximum": 10, - "description": "Number of partitions on the topic." - } - } + "title": "MappingUpdateList", + "type": "object" }, - "QueryParameterConfig": { + "Items_Mapping_": { "additionalProperties": false, - "type": "object", - "title": "QueryParameterConfig", + "properties": { + "items": { + "items": { + "$ref": "#/components/schemas/Mapping" + }, + "title": "Items", + "type": "array", + "maxItems": 100, + "minItems": 0 + } + }, "required": [ - "key", - "value", - "type" + "items" ], + "title": "MappingList", + "type": "object" + }, + "ItemsWithCursor_Mapping_": { + "additionalProperties": false, "properties": { - "type": { - "title": "Type", - "type": "string", - "enum": [ - "queryParam" - ] - }, - "key": { - "title": "Key", - "type": "string", - "description": "Key to insert the generated value into" + "items": { + "items": { + "$ref": "#/components/schemas/Mapping" + }, + "title": "Items", + "type": "array", + "maxItems": 100, + "minItems": 0 }, - "value": { - "title": "Value", + "nextCursor": { "type": "string", - "description": "Expression that will be evaluated, and its result used as a query parameter" + "title": "Next cursor", + "description": "Cursor for pagination" } - } + }, + "required": [ + "items" + ], + "title": "MappingList", + "type": "object" }, - "HeaderValueConfig": { + "Items_JobUpdateItem_": { "additionalProperties": false, - "type": "object", - "title": "HeaderValueConfig", + "properties": { + "items": { + "items": { + "$ref": "#/components/schemas/JobUpdateItem" + }, + "title": "Items", + "type": "array", + "minLength": 1, + "maxLength": 100 + } + }, "required": [ - "key", - "value", - "type" + "items" ], + "title": "UpdateJobList", + "type": "object" + }, + "Items_JobLogEntry_": { + "additionalProperties": false, "properties": { - "type": { - "title": "Type", - "type": "string", - "enum": [ - "headerValue" - ] - }, - "key": { - "title": "Key", - "type": "string", - "description": "Key to insert the generated value into" - }, - "value": { - "title": "Value", - "type": "string", - "description": "Expression that will be evaluated, and its result used as a header value" + "items": { + "items": { + "$ref": "#/components/schemas/JobLogEntry" + }, + "title": "Items", + "type": "array", + "maxLength": 1000, + "minLength": 0 } - } + }, + "required": [ + "items" + ], + "title": "JobLogEntryList", + "type": "object" }, - "NextUrlConfig": { + "Items_JobMetrics_": { "additionalProperties": false, - "type": "object", - "title": "HeaderValueConfig", + "properties": { + "items": { + "items": { + "$ref": "#/components/schemas/JobMetrics" + }, + "title": "Items", + "type": "array", + "maxItems": 1000, + "minItems": 0 + } + }, "required": [ - "type", - "value" + "items" ], + "title": "JobMetricsList", + "type": "object" + }, + "JobLogEntry": { + "additionalProperties": false, "properties": { + "jobExternalId": { + "type": "string", + "description": "External ID of the job this log entry belongs to.", + "maxLength": 255 + }, "type": { - "title": "Type", "type": "string", "enum": [ - "nextUrl" - ] + "paused", + "startup_error", + "connection_error", + "connected", + "transform_error", + "cdf_write_error", + "ok" + ], + "description": "Type of log entry.\n`paused` indicates that the job has been stopped manually,\n`startup_error` indicates that the job failed to start at all and requires changes to configuration,\n`connected` indicates that the job has connected to the source but did not yet receive any data,\n`transform_error` indicates that the job received data, but it failed to transform,\n`cdf_write_error` indicates that ingesting the data to CDF failed,\n`ok` means that data was successfully ingested to CDF." }, - "value": { - "title": "Value", + "message": { "type": "string", - "description": "Expression yielding the next URL to call" + "description": "Log message. Not all log entries have messages." + }, + "createdTime": { + "$ref": "#/components/schemas/EpochTimestamp" } - } + }, + "title": "JobLogEntry", + "type": "object", + "required": [ + "jobExternalId", + "type", + "createdTime" + ] }, - "RestJobConfig": { + "JobMetrics": { "additionalProperties": false, - "type": "object", - "title": "Rest", "properties": { - "interval": { - "$ref": "#/components/schemas/RestInterval" - }, - "path": { + "jobExternalId": { "type": "string", - "title": "Path", - "description": "Path of resource to access on the server", - "minLength": 1, - "maxLength": 2048 + "description": "External ID of the job this metrics batch belongs to.", + "maxLength": 255 }, - "incrementalLoad": { - "discriminator": { - "mapping": { - "queryParam": "#/components/schemas/QueryParameterConfig", - "headerValue": "#/components/schemas/HeaderValueConfig" - }, - "propertyName": "type" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/QueryParameterConfig" - }, - { - "$ref": "#/components/schemas/HeaderValueConfig" - } - ], - "title": "Incremental load", - "description": "The format of the messages from the source. This is used to convert messages coming from the source system to a format that can be inserted into CDF." + "timestamp": { + "title": "Timestamp", + "description": "The number of milliseconds since 00:00:00 Thursday, 1 January 1970, Coordinated Universal Time (UTC), minus leap seconds.\nMetrics are from the UTC hour this timestamp is ingest. For example, if this timestamp is at 01:43:15, the metrics batch contains metrics from 01:00:00 to 01:43:15.", + "type": "integer", + "minimum": 0, + "format": "int64" }, - "pagination": { - "discriminator": { - "mapping": { - "queryParam": "#/components/schemas/QueryParameterConfig", - "headerValue": "#/components/schemas/HeaderValueConfig", - "nextUrl": "#/components/schemas/NextUrlConfig" - }, - "propertyName": "type" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/QueryParameterConfig" - }, - { - "$ref": "#/components/schemas/HeaderValueConfig" - }, - { - "$ref": "#/components/schemas/NextUrlConfig" - } - ], - "title": "Incremental load", - "description": "The format of the messages from the source. This is used to convert messages coming from the source system to a format that can be inserted into CDF." + "sourceMessages": { + "title": "SourceMessages", + "minimum": 0, + "format": "int64", + "type": "integer", + "description": "Messages received from the source." + }, + "cdfInputValues": { + "title": "CDFInputValues", + "minimum": 0, + "format": "int64", + "type": "integer", + "description": "Destination resources successfully transformed and passed to CDF." + }, + "cdfRequests": { + "title": "CDFRequests", + "minimum": 0, + "format": "int64", + "type": "integer", + "description": "Requests made to CDF containing data produced by this job." + }, + "transformFailures": { + "title": "TransformFailures", + "minimum": 0, + "format": "int64", + "type": "integer", + "description": "Source messages that failed to transform." + }, + "cdfWriteFailures": { + "title": "CDFWriteFailures", + "minimum": 0, + "format": "int64", + "type": "integer", + "description": "Times the destination received data from transformations, but failed to produce a valid request to CDF." + }, + "cdfSkippedValues": { + "title": "CDFSkippedValues", + "minimum": 0, + "format": "int64", + "type": "integer", + "description": "Values the destination received from the source, then decided to skip due to data type mismatch, invalid content, or other." + }, + "cdfFailedValues": { + "title": "CDFFailedValues", + "minimum": 0, + "format": "int64", + "type": "integer", + "description": "Values the destination was unable to upload to CDF." + }, + "cdfUploadedValues": { + "title": "CDFUploadedValues", + "minimum": 0, + "format": "int64", + "type": "integer", + "description": "Values the destination successfully uploaded to CDF." } }, "required": [ - "interval", - "path" + "jobExternalId", + "timestamp", + "sourceMessages", + "cdfInputValues", + "cdfRequests", + "transformFailures", + "cdfWriteFailures", + "cdfSkippedValues", + "cdfFailedValues", + "cdfUploadedValues" ] }, - "JobConfig": { - "description": "Source specific job configuration. The type depends on the type of source, and is required for some sources.\n", - "title": "Job Config", - "oneOf": [ - { - "$ref": "#/components/schemas/MQTTJobConfig" - }, - { - "$ref": "#/components/schemas/KafkaJobConfig" - } - ] + "JobTargetStatus": { + "enum": [ + "running", + "paused" + ], + "title": "JobTargetStatus", + "description": "The target status of a job. Set this to start or stop the job.", + "type": "string" }, - "UpdateItem_JobConfig_": { + "JobUpdate": { "additionalProperties": false, - "type": "object", - "title": "UpdateItem_JobConfig", - "description": "Set a new source specific job config.", "properties": { - "set": { - "$ref": "#/components/schemas/JobConfig" + "destinationId": { + "$ref": "#/components/schemas/UpdateItem_DestinationId_" + }, + "format": { + "$ref": "#/components/schemas/UpdateFormat" + }, + "sourceId": { + "$ref": "#/components/schemas/UpdateItem_SourceId_" + }, + "targetStatus": { + "$ref": "#/components/schemas/UpdateItem_JobTargetStatus_" + }, + "config": { + "$ref": "#/components/schemas/UpdateItem_JobConfig_" } - } + }, + "title": "JobUpdate", + "type": "object" }, - "CreateJob": { + "MinimalJob": { "additionalProperties": false, "properties": { "externalId": { @@ -56977,13 +65929,13 @@ }, "destinationId": { "title": "Destination ID", - "description": "ID of the destination this job should write to.", + "description": "ID of the destination this job writes to.", "type": "string", "maxLength": 255 }, "sourceId": { "title": "Source ID", - "description": "ID of the source this job should read from.", + "description": "ID of the source this job reads from.", "type": "string", "maxLength": 255 }, @@ -56991,7 +65943,7 @@ "discriminator": { "mapping": { "cognite": "#/components/schemas/CogniteFormat", - "custom": "#/components/schemas/WriteCustomFormat", + "custom": "#/components/schemas/CustomFormat", "rockwell": "#/components/schemas/RockwellFormat", "value": "#/components/schemas/ValueFormat" }, @@ -57005,29 +65957,60 @@ "$ref": "#/components/schemas/CogniteFormat" }, { - "$ref": "#/components/schemas/WriteCustomFormat" + "$ref": "#/components/schemas/CustomFormat" }, { "$ref": "#/components/schemas/ValueFormat" } ], "title": "Format", - "description": "The format of the messages from the source. This is used to convert messages coming from the source system to a format that can be inserted into CDF." + "description": "The format of the messages from the source. This is used to convert messages coming from the source system to a format that can be inserted into CDF.", + "type": "object" + }, + "targetStatus": { + "$ref": "#/components/schemas/JobTargetStatus" + }, + "status": { + "title": "Status", + "description": "Status of this job.", + "enum": [ + "startup_error", + "paused", + "shutting_down", + "connected", + "running", + "waiting", + "connection_error", + "cdf_write_error", + "transform_error" + ], + "type": "string" }, "config": { "$ref": "#/components/schemas/JobConfig" + }, + "createdTime": { + "$ref": "#/components/schemas/EpochTimestamp" + }, + "lastUpdatedTime": { + "$ref": "#/components/schemas/EpochTimestamp" } }, "required": [ "sourceId", "destinationId", "externalId", - "format" + "createdTime", + "lastUpdatedTime", + "status", + "targetStatus", + "format", + "config" ], - "title": "CreateJob", + "title": "Job", "type": "object" }, - "CreateMqttV3Source": { + "MqttV3Source": { "additionalProperties": false, "properties": { "type": { @@ -57050,44 +66033,43 @@ "port": { "type": "integer", "title": "Port", + "description": "Port to connect to on the MQTT broker.", "default": 1883, - "description": "Port on the MQTT broker to connect to.", "minimum": 1, "maximum": 65535 }, - "username": { - "type": "string", - "title": "Username", - "description": "Username used for authenticating with the broker.", - "maxLength": 200 - }, - "password": { - "type": "string", - "title": "Password", - "description": "Password used for authenticating with the broker.", - "maxLength": 200 + "authentication": { + "$ref": "#/components/schemas/MqttAuthentication" }, "useTls": { "type": "boolean", "title": "UseTls", "description": "If true, use TLS when connecting to the broker." }, + "createdTime": { + "$ref": "#/components/schemas/EpochTimestamp" + }, + "lastUpdatedTime": { + "$ref": "#/components/schemas/EpochTimestamp" + }, "caCertificate": { - "$ref": "#/components/schemas/CACertificate" + "$ref": "#/components/schemas/CertificateDetails" }, "authCertificate": { - "$ref": "#/components/schemas/AuthCertificate" + "$ref": "#/components/schemas/CertificateDetails" } }, "required": [ "type", "externalId", - "host" + "host", + "createdTime", + "lastUpdatedTime" ], - "title": "CreateMqttV3Source", + "title": "MqttV3Source", "type": "object" }, - "CreateMqttV5Source": { + "MqttV5Source": { "additionalProperties": false, "properties": { "type": { @@ -57110,44 +66092,74 @@ "port": { "type": "integer", "title": "Port", + "description": "Port to connect to on the MQTT broker.", "default": 1883, - "description": "Port on the MQTT broker to connect to.", "minimum": 1, "maximum": 65535 }, - "username": { - "type": "string", - "title": "Username", - "description": "Username used for authenticating with the broker.", - "maxLength": 200 - }, - "password": { - "type": "string", - "title": "Password", - "description": "Password used for authenticating with the broker.", - "maxLength": 200 + "authentication": { + "$ref": "#/components/schemas/MqttAuthentication" }, "useTls": { "type": "boolean", "title": "UseTls", "description": "If true, use TLS when connecting to the broker." }, + "createdTime": { + "$ref": "#/components/schemas/EpochTimestamp" + }, + "lastUpdatedTime": { + "$ref": "#/components/schemas/EpochTimestamp" + }, "caCertificate": { - "$ref": "#/components/schemas/CACertificate" + "$ref": "#/components/schemas/CertificateDetails" }, "authCertificate": { - "$ref": "#/components/schemas/AuthCertificate" + "$ref": "#/components/schemas/CertificateDetails" } }, "required": [ "type", "externalId", - "host" + "host", + "createdTime", + "lastUpdatedTime" ], - "title": "CreateMqttV5Source", + "title": "MqttV5Source", "type": "object" }, - "CreateRestSource": { + "PrefixConfig": { + "additionalProperties": false, + "properties": { + "fromTopic": { + "type": "boolean", + "title": "FromTopic", + "description": "Generate the prefix based on the topic of the received message." + }, + "prefix": { + "type": "string", + "title": "Prefix", + "description": "A fixed prefix to the generated IDs.", + "maxLength": 255 + } + }, + "title": "PrefixConfig", + "description": "Generate a prefix for resources created using this format. If both `prefix` and `fromTopic` are set, the generated ID will be on the form `[prefix][topic][id]`", + "type": "object" + }, + "RestInterval": { + "enum": [ + "5m", + "15m", + "1h", + "6h", + "12h", + "1d" + ], + "title": "RestInterval", + "type": "string" + }, + "RestSource": { "additionalProperties": false, "properties": { "type": { @@ -57174,8 +66186,7 @@ "enum": [ "http", "https" - ], - "default": "https" + ] }, "port": { "type": "integer", @@ -57184,374 +66195,348 @@ "minimum": 1, "maximum": 65535 }, - "interval": { - "$ref": "#/components/schemas/RestInterval" + "caCertificate": { + "$ref": "#/components/schemas/CertificateDetails" }, "authentication": { "discriminator": { "mapping": { - "basic": "#/components/schemas/CreateBasicAuthentication", - "header": "#/components/schemas/CreateHeaderValueAuthentication", - "query": "#/components/schemas/CreateQueryParamAuthentication", - "clientCredentials": "#/components/schemas/CreateClientCredentialsAuthentication" + "basic": "#/components/schemas/BasicAuthentication", + "header": "#/components/schemas/HeaderValueAuthentication", + "query": "#/components/schemas/QueryParamAuthentication", + "clientCredentials": "#/components/schemas/ClientCredentialsAuthentication" }, "propertyName": "type" }, "oneOf": [ { - "$ref": "#/components/schemas/CreateBasicAuthentication" + "$ref": "#/components/schemas/BasicAuthentication" }, { - "$ref": "#/components/schemas/CreateHeaderValueAuthentication" + "$ref": "#/components/schemas/HeaderValueAuthentication" }, { - "$ref": "#/components/schemas/CreateQueryParamAuthentication" + "$ref": "#/components/schemas/QueryParamAuthentication" }, { - "$ref": "#/components/schemas/CreateClientCredentialsAuthentication" + "$ref": "#/components/schemas/ClientCredentialsAuthentication" } ], "title": "Authentication", "description": "Authentication details for source" + }, + "createdTime": { + "$ref": "#/components/schemas/EpochTimestamp" + }, + "lastUpdatedTime": { + "$ref": "#/components/schemas/EpochTimestamp" } }, "required": [ "type", "externalId", "host", - "interval" + "createdTime", + "lastUpdatedTime", + "scheme" ], - "title": "CreateRestSource", + "title": "RestSource", "type": "object" }, - "CreateProtoFile": { + "CreateBasicAuthentication": { "additionalProperties": false, - "description": "Definition of a protobuf file used for loading input to the mapping.", "properties": { - "fileName": { + "type": { + "enum": [ + "basic" + ], + "title": "Type", "type": "string", - "title": "File Name", - "format": "[a-zA-Z0-9_-]+\\.proto", - "maxLength": 128, - "description": "Name of protobuf file. Must contain only letters, numbers, underscores, and hyphens, and must end with '.proto'." + "description": "Authentication type." }, - "content": { - "type": "string", - "title": "Content", - "description": "Protobuf file content. Must be a valid protobuf file.", - "maxLength": 10000 - } - }, - "required": [ - "fileName", - "content" - ] - }, - "ProtoFile": { - "additionalProperties": false, - "description": "Description of a protobuf file used for loading input to the mapping.", - "properties": { - "fileName": { - "type": "string", - "title": "File Name", - "format": "[a-zA-Z0-9_-]+\\.proto", - "maxLength": 128, - "description": "Name of protobuf file. Must contain only letters, numbers, underscores, and hyphens, and must end with '.proto'." + "username": { + "title": "User name", + "description": "User name to use for basic authentication", + "type": "string" + }, + "password": { + "title": "Password", + "description": "Password to use for basic authentication", + "type": "string" } }, "required": [ - "fileName" - ] + "username", + "password", + "type" + ], + "title": "CreateBasicAuthentication", + "type": "object" }, - "CreateProtobufConfig": { + "CreateHeaderValueAuthentication": { "additionalProperties": false, - "description": "List of protobuf files used to define input to the mapping. This will be compiled to a collection of definitions which will be used to convert the input to JSON.", "properties": { "type": { - "type": "string", "enum": [ - "protobuf" + "header" ], - "description": "Input type", - "title": "Type" - }, - "messageName": { + "title": "Type", "type": "string", - "description": "Name of root message in the protobuf files.", - "maxLength": 128, - "title": "Message Name" + "description": "Authentication type." }, - "files": { - "type": "array", - "maxItems": 20, - "minItems": 1, - "description": "List of protobuf files as text.", - "items": { - "$ref": "#/components/schemas/CreateProtoFile" - } + "key": { + "title": "Header key", + "description": "Key for the header to place the authentication token in", + "type": "string" + }, + "value": { + "title": "Value", + "description": "Value of the authentication token", + "type": "string" } }, "required": [ - "messageName", - "file", + "key", + "value", "type" - ] - }, - "CreateInputConfig": { - "type": "object", - "description": "Optionally set input mapping input type. This defaults to json if left out. Each input type is converted to JSON before being passed to the mapping expression.", - "discriminator": { - "mapping": { - "protobuf": "#/components/schemas/CreateProtobufConfig", - "csv": "#/components/schemas/CsvConfig", - "xml": "#/components/schemas/XmlConfig", - "json": "#/components/schemas/JsonConfig" - }, - "propertyName": "type" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/CreateProtobufConfig" - }, - { - "$ref": "#/components/schemas/CsvConfig" - }, - { - "$ref": "#/components/schemas/XmlConfig" - }, - { - "$ref": "#/components/schemas/JsonConfig" - } - ] - }, - "InputConfig": { - "type": "object", - "description": "Optionally set input mapping input type. This defaults to json if left out. Any input type is converted to JSON before being passed to the mapping expression.", - "discriminator": { - "mapping": { - "protobuf": "#/components/schemas/ProtobufConfig", - "csv": "#/components/schemas/CsvConfig", - "xml": "#/components/schemas/XmlConfig", - "json": "#/components/schemas/JsonConfig" - }, - "propertyName": "type" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/ProtobufConfig" - }, - { - "$ref": "#/components/schemas/CsvConfig" - }, - { - "$ref": "#/components/schemas/XmlConfig" - }, - { - "$ref": "#/components/schemas/JsonConfig" - } - ] + ], + "title": "CreateHeaderValueAuthentication", + "type": "object" }, - "CsvConfig": { + "CreateQueryParamAuthentication": { "additionalProperties": false, - "type": "object", - "description": "Transform the input from a CSV (Comma Separated Values) file to a list of JSON objects. The input to the mapping will be a list on the form `[{\\\"header1\\\": \\\"value1\\\", ...}, ...]`.\n", "properties": { "type": { - "type": "string", "enum": [ - "csv" + "query" ], - "description": "Input type", - "title": "Type" - }, - "delimiter": { + "title": "Type", "type": "string", - "description": "A single ASCII character used as the separator in the CSV file. Defaults to `,`", - "maxLength": 1, - "minLength": 1, - "title": "Delimiter" + "description": "Authentication type." + }, + "key": { + "title": "Query parameter key", + "description": "Key for the query parameter to place the authentication token in", + "type": "string" }, - "customKeys": { - "type": "array", - "minItems": 1, - "maxItems": 20, - "description": "List of headers. If this is not set, the headers will be retrieved from the CSV file.", - "items": { - "type": "string", - "description": "CSV file header value.", - "title": "CSV_Header" - } + "value": { + "title": "Value", + "description": "Value of the authentication token", + "type": "string" } }, "required": [ + "key", + "value", "type" - ] + ], + "title": "CreateQueryParamAuthentication", + "type": "object" }, - "XmlConfig": { + "CreateClientCredentialsAuthentication": { "additionalProperties": false, - "type": "object", - "description": "Transform the input from an XML file to a JSON object.\n", "properties": { "type": { - "type": "string", "enum": [ - "xml" + "clientCredentials" ], - "description": "Input type", - "title": "Type" + "title": "Type", + "type": "string", + "description": "Authentication type." + }, + "clientId": { + "title": "Client ID", + "description": "Client ID for for the service principal used by the extractor", + "type": "string" + }, + "clientSecret": { + "title": "Client secret", + "description": "Client secret for for the service principal used by the extractor", + "type": "string" + }, + "tokenUrl": { + "title": "Token URL", + "description": "URL to fetch authentication tokens from", + "type": "string" + }, + "scopes": { + "title": "Scopes", + "description": "A space separated list of scopes", + "type": "string" + }, + "defaultExpiresIn": { + "title": "Default expires in", + "description": "Default value for the expires_in OAuth 2.0 parameter. If the identity provider does not return expires_in in token requests, this parameter must be set or the request will fail.", + "type": "string" } }, "required": [ + "clientId", + "clientSecret", + "tokenUrl", + "scopes", "type" - ] + ], + "title": "CreateClientCredentialsAuthentication", + "type": "object" }, - "JsonConfig": { + "BasicAuthentication": { "additionalProperties": false, - "type": "object", - "description": "Treat the input as UTF-8 encoded JSON.", "properties": { "type": { - "type": "string", "enum": [ - "json" + "basic" ], - "description": "Input type", - "title": "Type" + "title": "Type", + "type": "string", + "description": "Authentication type." + }, + "username": { + "title": "User name", + "description": "User name to use for basic authentication", + "type": "string" } }, "required": [ - "type" - ] + "type", + "username" + ], + "title": "BasicAuthentication", + "type": "object" }, - "ProtobufConfig": { + "HeaderValueAuthentication": { "additionalProperties": false, - "description": "List of protobuf files used to define input to the mapping. This will be compiled to a collection of definitions which will be used to convert the input to JSON.", "properties": { "type": { - "type": "string", "enum": [ - "protobuf" + "header" ], - "description": "Input type", - "title": "Type" - }, - "messageName": { + "title": "Type", "type": "string", - "description": "Name of root message in the protobuf files.", - "maxLength": 128, - "title": "Message Name" + "description": "Authentication type." }, - "files": { - "type": "array", - "maxItems": 20, - "minItems": 1, - "items": { - "$ref": "#/components/schemas/ProtoFile" - } + "key": { + "title": "Header key", + "description": "Key for the header to place the authentication token in", + "type": "string" } }, "required": [ - "messageName", - "file", - "type" - ] + "type", + "key" + ], + "title": "HeaderValueAuthentication", + "type": "object" }, - "UpdateItem_InputConfig_": { + "QueryParamAuthentication": { "additionalProperties": false, "properties": { - "set": { - "$ref": "#/components/schemas/CreateInputConfig" + "type": { + "enum": [ + "query" + ], + "title": "Type", + "type": "string", + "description": "Authentication type." + }, + "key": { + "title": "Query parameter key", + "description": "Key for the query parameter to place the authentication token in", + "type": "string" } }, "required": [ - "set" + "type", + "key" ], - "title": "UpdateItem_InputConfig", - "type": "object", - "description": "Set a new mapping input." + "title": "QueryParamAuthentication", + "type": "object" }, - "CreateMapping": { + "ClientCredentialsAuthentication": { "additionalProperties": false, "properties": { - "externalId": { - "$ref": "#/components/schemas/CogniteExternalId" + "type": { + "enum": [ + "clientCredentials" + ], + "title": "Type", + "type": "string", + "description": "Authentication type." }, - "mapping": { - "$ref": "#/components/schemas/CustomMapping" + "clientId": { + "title": "Client ID", + "description": "Client ID for for the service principal used by the extractor", + "type": "string" }, - "input": { - "$ref": "#/components/schemas/CreateInputConfig" + "tokenUrl": { + "title": "Token URL", + "description": "URL to fetch authentication tokens from", + "type": "string" }, - "published": { - "title": "Published", - "type": "boolean", - "description": "Whether this mapping is published and should be available to be used in jobs." + "scopes": { + "title": "Scopes", + "description": "A space separated list of scopes", + "type": "string" + }, + "defaultExpiresIn": { + "title": "Default expires in", + "description": "Default value for the expires_in OAuth 2.0 parameter. If the identity provider does not return expires_in in token requests, this parameter must be set or the request will fail.", + "type": "string" } }, "required": [ - "externalId", - "mapping", - "published" + "type", + "clientId", + "tokenUrl", + "scopes" ], - "title": "CreateMapping", + "title": "ClientCredentialsAuthentication", "type": "object" }, - "CustomFormat": { + "RockwellFormat": { "additionalProperties": false, "properties": { "type": { "enum": [ - "custom" + "rockwell" ], "title": "Type", "type": "string", "description": "Format type." }, - "mappingId": { - "type": "string", - "title": "MappingId", - "description": "The ID of the mapping used for this format.", - "maxLength": 255 + "encoding": { + "$ref": "#/components/schemas/EncodingType" }, - "preProcessingLayers": { - "$ref": "#/components/schemas/PreProcessingLayers" + "compression": { + "$ref": "#/components/schemas/CompressionType" }, - "expression": { - "type": "string", - "title": "Expression", - "description": "The transformation expression of the mapping given by `mappingId`.", - "maxLength": 2000 + "prefix": { + "$ref": "#/components/schemas/PrefixConfig" } }, "required": [ - "type", - "mappingId", - "expression" + "type" ], - "title": "CustomFormat", + "title": "RockwellFormat", + "description": "Transform data on the Rockwell FactoryTalk format into CDF timeseries", "type": "object" }, - "Destination": { + "Mapping": { "additionalProperties": false, "properties": { "externalId": { "$ref": "#/components/schemas/CogniteExternalId" }, - "sessionId": { - "type": "integer", - "title": "Session ID", - "minimum": 1, - "maximum": 9007199254740991, - "format": "int64", - "description": "ID of the session tied to this destination." + "mapping": { + "$ref": "#/components/schemas/CustomMapping" }, - "datasetId": { - "type": "integer", - "title": "Data Set ID", - "minimum": 1, - "maximum": 9007199254740991, - "format": "int64", - "description": "Data set ID the created items are inserted into, if applicable." + "input": { + "$ref": "#/components/schemas/InputConfig" + }, + "published": { + "title": "Published", + "type": "boolean", + "description": "Whether this mapping is published and should be available to be used in jobs." }, "createdTime": { "$ref": "#/components/schemas/EpochTimestamp" @@ -57562,62 +66547,141 @@ }, "required": [ "externalId", + "mapping", + "published", "lastUpdatedTime", - "createdTime" + "createdTime", + "input" ], - "title": "Destination", + "title": "Mapping", "type": "object" }, - "DestinationUpdateItem": { + "MappingUpdateItem": { "additionalProperties": false, "properties": { "externalId": { "$ref": "#/components/schemas/CogniteExternalId" }, "update": { - "$ref": "#/components/schemas/UpdateDestination" + "$ref": "#/components/schemas/UpdateMapping" } }, "required": [ "externalId", "update" ], - "title": "DestinationUpdateItem", + "title": "MappingUpdateItem", "type": "object" }, - "EncodingLayer": { + "UpdateDestination": { "additionalProperties": false, "properties": { - "type": { - "enum": [ - "encoding" + "credentials": { + "anyOf": [ + { + "$ref": "#/components/schemas/UpdateSetNull" + }, + { + "$ref": "#/components/schemas/UpdateItem_SessionCredentials_" + } ], - "title": "Type", - "type": "string", - "description": "Pre-processing layer type." + "title": "Credentials", + "description": "Set a new session, or remove the value." }, - "encodingType": { - "$ref": "#/components/schemas/EncodingType" + "targetDataSetId": { + "anyOf": [ + { + "$ref": "#/components/schemas/UpdateSetNull" + }, + { + "$ref": "#/components/schemas/UpdateItem_DataSetId_" + } + ], + "title": "Dataset Id", + "description": "Set a new value for the dataset ID, or remove the value." } }, - "required": [ - "type", - "encodingType" - ], - "title": "EncodingLayer", - "type": "object", - "description": "Pre-processing layer converting from other encodings to UTF-8." + "title": "UpdateDestination", + "type": "object" }, - "EncodingType": { - "enum": [ - "utf16", - "utf16le" - ], - "title": "EncodingType", - "description": "The type of encoding to convert from.\nOptions are `utf16` (UTF-16 big endian), and `utf16le` (UTF-16 little endian).", - "type": "string" + "UpdateEventHubSource": { + "additionalProperties": false, + "properties": { + "host": { + "$ref": "#/components/schemas/UpdateItem_Host_" + }, + "eventHubName": { + "additionalProperties": false, + "properties": { + "set": { + "title": "Set", + "type": "string", + "maxLength": 200 + } + }, + "required": [ + "set" + ], + "type": "object", + "description": "Set a new value for the event hub name." + }, + "keyName": { + "additionalProperties": false, + "properties": { + "set": { + "title": "Set", + "type": "string", + "maxLength": 200 + } + }, + "required": [ + "set" + ], + "type": "object", + "description": "Set a new value for the key name." + }, + "keyValue": { + "additionalProperties": false, + "properties": { + "set": { + "title": "Set", + "type": "string", + "maxLength": 200 + } + }, + "required": [ + "set" + ], + "type": "object", + "description": "Set a new value for the key value." + }, + "consumerGroup": { + "anyOf": [ + { + "type": "object", + "required": [ + "set" + ], + "properties": { + "set": { + "title": "Set", + "type": "string", + "maxLength": 200 + } + } + }, + { + "$ref": "#/components/schemas/UpdateSetNull" + } + ], + "title": "ConsumerGroup", + "description": "Set a new value for the consumer group, or remove the value." + } + }, + "title": "UpdateEventHubSource", + "type": "object" }, - "EventHubSource": { + "UpdateEventHubSourceItem": { "additionalProperties": false, "properties": { "type": { @@ -57631,898 +66695,1064 @@ "externalId": { "$ref": "#/components/schemas/CogniteExternalId" }, - "host": { - "title": "Host", - "type": "string", - "description": "URL of the event hub consumer endpoint.", - "example": "iothub-ns-myhub-12345678-12345abcde.servicebus.windows.net", - "maxLength": 200 - }, - "eventHubName": { - "title": "EventHubName", - "type": "string", - "description": "Name of the event hub", - "example": "myhub", - "maxLength": 200 - }, - "keyName": { - "title": "KeyName", - "type": "string", - "description": "The name of the Event Hub key to use.", - "example": "iothubowner", - "maxLength": 200 - }, - "consumerGroup": { - "type": "string", - "title": "ConsumerGroup", - "description": "The event hub consumer group to use. Microsoft recommends having a distinct consumer group for each application consuming data from event hub. If left out, this uses the default consumer group.", - "maxLength": 200 - }, - "createdTime": { - "$ref": "#/components/schemas/EpochTimestamp" - }, - "lastUpdatedTime": { - "$ref": "#/components/schemas/EpochTimestamp" + "update": { + "$ref": "#/components/schemas/UpdateEventHubSource" } }, "required": [ "type", "externalId", - "host", - "keyName", - "eventHubName", - "createdTime", - "lastUpdatedTime" + "update" ], - "title": "EventHubSource", + "title": "UpdateEventHubSourceItem", "type": "object" }, - "GzipLayer": { + "UpdateFormat": { + "additionalProperties": false, + "properties": { + "set": { + "discriminator": { + "mapping": { + "cognite": "#/components/schemas/CogniteFormat", + "custom": "#/components/schemas/WriteCustomFormat", + "rockwell": "#/components/schemas/RockwellFormat", + "value": "#/components/schemas/ValueFormat" + }, + "propertyName": "type" + }, + "oneOf": [ + { + "$ref": "#/components/schemas/RockwellFormat" + }, + { + "$ref": "#/components/schemas/CogniteFormat" + }, + { + "$ref": "#/components/schemas/WriteCustomFormat" + }, + { + "$ref": "#/components/schemas/ValueFormat" + } + ], + "title": "Set", + "description": "The format of the messages from the source. This is used to convert messages coming from the source system to a format that can be inserted into CDF.", + "type": "object" + } + }, + "required": [ + "set" + ], + "title": "UpdateFormat", + "type": "object", + "description": "Set a new format." + }, + "UpdateItem_AuthCertificate_": { + "additionalProperties": false, + "properties": { + "set": { + "$ref": "#/components/schemas/AuthCertificate" + } + }, + "required": [ + "set" + ], + "title": "UpdateItem_AuthCertificate", + "type": "object", + "description": "Set a new authentication certificate." + }, + "UpdateItem_CACertificate_": { + "additionalProperties": false, + "properties": { + "set": { + "$ref": "#/components/schemas/CACertificate" + } + }, + "required": [ + "set" + ], + "title": "UpdateItem_CACertificate", + "type": "object", + "description": "Set a new certificate authority." + }, + "UpdateItem_JobTargetStatus_": { + "additionalProperties": false, + "properties": { + "set": { + "$ref": "#/components/schemas/JobTargetStatus" + } + }, + "required": [ + "set" + ], + "title": "UpdateItem_JobTargetStatus", + "type": "object", + "description": "Set a new job target status." + }, + "UpdateItem_CustomMapping_": { + "additionalProperties": false, + "properties": { + "set": { + "$ref": "#/components/schemas/CustomMapping" + } + }, + "required": [ + "set" + ], + "title": "UpdateItem_CustomMapping", + "type": "object", + "description": "Set a new mapping value." + }, + "UpdateItem_SessionCredentials_": { + "additionalProperties": false, + "properties": { + "set": { + "$ref": "#/components/schemas/SessionCredentials" + } + }, + "required": [ + "set" + ], + "title": "UpdateItem_SessionCredentials", + "type": "object", + "description": "Set a new set of session credentials for writing to CDF." + }, + "UpdateItem_Host_": { "additionalProperties": false, - "description": "Un-gzip the payload before it is read as JSON. This is usually not relevant for REST, where this is handled automatically, but MQTT and EventHub have no such mechanisms.", "properties": { - "type": { - "enum": [ - "gzip" - ], - "title": "Type", + "set": { + "title": "Set", "type": "string", - "description": "Pre-processing layer type." + "maxLength": 200 } }, "required": [ - "type" + "set" ], - "title": "GzipLayer", - "type": "object" + "title": "UpdateItem_Host", + "type": "object", + "description": "Set a new host or IP address." }, - "ExternalIdWrapper": { + "UpdateItem_DestinationId_": { "additionalProperties": false, "properties": { - "externalId": { - "$ref": "#/components/schemas/CogniteExternalId" + "set": { + "title": "Set", + "type": "string", + "maxLength": 255 } }, "required": [ - "externalId" + "set" ], - "title": "ExternalIdWrapper", - "type": "object" + "title": "UpdateItem_DestinationId", + "type": "object", + "description": "Set a new destination this job should write to." }, - "ItemsWithIgnoreUnknownIds_ExternalId_": { + "UpdateItem_Port_": { "additionalProperties": false, "properties": { - "items": { - "items": { - "$ref": "#/components/schemas/ExternalIdWrapper" - }, - "title": "Items", - "type": "array", - "maxItems": 100, - "minItems": 1 - }, - "ignoreUnknownIds": { - "type": "boolean", - "title": "IgnoreUnknownIds", - "description": "Ignore IDs and external IDs that are not found" + "set": { + "title": "Set", + "type": "integer", + "minimum": 1, + "maximum": 65535 } }, "required": [ - "items" + "set" ], - "title": "ItemsWithIgnoreUnknownIds_ExternalId", - "type": "object" + "title": "UpdateItem_Port", + "type": "object", + "description": "Set a new port this source should connect to." }, - "ItemsWithIgnoreUnknownIdsAndForce_ExternalId_": { + "UpdateItem_RestScheme_": { "additionalProperties": false, "properties": { - "items": { - "items": { - "$ref": "#/components/schemas/ExternalIdWrapper" - }, - "title": "Items", - "type": "array", - "maxItems": 100, - "minItems": 1 - }, - "ignoreUnknownIds": { - "type": "boolean", - "title": "IgnoreUnknownIds", - "description": "Ignore IDs and external IDs that are not found." - }, - "force": { - "type": "boolean", - "title": "Force", - "description": "Delete any jobs associated with each item." + "set": { + "title": "Set", + "type": "string", + "enum": [ + "http", + "https" + ] } }, "required": [ - "items" + "set" ], - "title": "ItemsWithIgnoreUnknownIdsAndForce_ExternalId", - "type": "object" + "title": "UpdateItem_RestScheme", + "type": "object", + "description": "Set a new scheme for this source to use" }, - "Items_CreateSource_": { + "UpdateItem_DataSetId_": { "additionalProperties": false, "properties": { - "items": { - "items": { - "discriminator": { - "mapping": { - "eventhub": "#/components/schemas/CreateEventHubSource", - "mqtt3": "#/components/schemas/CreateMqttV3Source", - "mqtt5": "#/components/schemas/CreateMqttV5Source" - }, - "propertyName": "type" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/CreateMqttV3Source" - }, - { - "$ref": "#/components/schemas/CreateMqttV5Source" - }, - { - "$ref": "#/components/schemas/CreateEventHubSource" - } - ] - }, - "title": "Items", - "type": "array", - "minItems": 1, - "maxItems": 100 + "set": { + "title": "Set", + "type": "integer", + "minimum": 1, + "maximum": 9007199254740991, + "format": "int64" } }, "required": [ - "items" + "set" ], - "title": "CreateSourceList", - "type": "object" + "title": "UpdateItem_Port", + "type": "object", + "description": "Set a new dataset ID." }, - "Items_Source_": { + "UpdateItem_SourceId_": { "additionalProperties": false, "properties": { - "items": { - "items": { - "discriminator": { - "mapping": { - "eventhub": "#/components/schemas/EventHubSource", - "mqtt3": "#/components/schemas/MqttV3Source", - "mqtt5": "#/components/schemas/MqttV5Source" - }, - "propertyName": "type" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/MqttV3Source" - }, - { - "$ref": "#/components/schemas/MqttV5Source" - }, - { - "$ref": "#/components/schemas/EventHubSource" - } - ] - }, - "title": "Items", - "type": "array", - "maxItems": 100, - "minItems": 0 + "set": { + "title": "Set", + "type": "string", + "maxLength": 255 } }, "required": [ - "items" + "set" ], - "title": "SourceList", - "type": "object" + "title": "UpdateItem_SourceId", + "type": "object", + "description": "Set a new source this job should write to." }, - "ItemsWithCursor_Source_": { + "UpdateItem_MqttAuthentication_": { "additionalProperties": false, "properties": { - "items": { - "items": { - "discriminator": { - "mapping": { - "eventhub": "#/components/schemas/EventHubSource", - "mqtt3": "#/components/schemas/MqttV3Source", - "mqtt5": "#/components/schemas/MqttV5Source" - }, - "propertyName": "type" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/MqttV3Source" - }, - { - "$ref": "#/components/schemas/MqttV5Source" - }, - { - "$ref": "#/components/schemas/EventHubSource" - } - ] - }, - "title": "Items", - "type": "array", - "maxItems": 100, - "minItems": 0 - }, - "nextCursor": { - "type": "string", - "title": "Next cursor", - "description": "Cursor for pagination" + "set": { + "$ref": "#/components/schemas/MqttAuthenticationWrite" } }, "required": [ - "items" + "set" ], - "title": "SourceListWithCursor", - "type": "object" + "title": "UpdateItem_MqttAuthentication", + "type": "object", + "description": "Set new credentials for authenticating with the broker." }, - "Items_UpdateSource_": { + "UpdateItem_KafkaAuthentication_": { "additionalProperties": false, "properties": { - "items": { - "items": { - "discriminator": { - "mapping": { - "eventhub": "#/components/schemas/UpdateEventHubSourceItem", - "mqtt3": "#/components/schemas/UpdateMqttV3SourceItem", - "mqtt5": "#/components/schemas/UpdateMqttV5SourceItem" - }, - "propertyName": "type" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/UpdateMqttV3SourceItem" - }, - { - "$ref": "#/components/schemas/UpdateMqttV5SourceItem" - }, - { - "$ref": "#/components/schemas/UpdateEventHubSourceItem" - } - ] - }, - "title": "Items", - "type": "array", - "minItems": 1, - "maxItems": 100 + "set": { + "$ref": "#/components/schemas/KafkaAuthenticationWrite" } }, "required": [ - "items" + "set" ], - "title": "UpdateSourceList", - "type": "object" + "title": "UpdateItem_KafkaAuthentication", + "type": "object", + "description": "Set new credentials for authenticating with the broker." }, - "Items_CreateDestination_": { + "JobUpdateItem": { "additionalProperties": false, "properties": { - "items": { - "items": { - "$ref": "#/components/schemas/CreateDestination" - }, - "title": "Items", - "type": "array", - "minLength": 1, - "maxLength": 100 + "externalId": { + "title": "External ID", + "$ref": "#/components/schemas/CogniteExternalId" + }, + "update": { + "$ref": "#/components/schemas/JobUpdate" } }, "required": [ - "items" + "externalId", + "update" ], - "title": "CreateDestination list", + "title": "UpdateJob", "type": "object" }, - "Items_CreateJob_": { + "UpdateMqttV3Source": { "additionalProperties": false, "properties": { - "items": { - "items": { - "$ref": "#/components/schemas/CreateJob" + "host": { + "$ref": "#/components/schemas/UpdateItem_Host_" + }, + "port": { + "anyOf": [ + { + "$ref": "#/components/schemas/UpdateItem_Port_" + }, + { + "$ref": "#/components/schemas/UpdateSetNull" + } + ], + "title": "Port", + "description": "Set or remove the port on the MQTT broker." + }, + "authentication": { + "anyOf": [ + { + "$ref": "#/components/schemas/UpdateItem_MqttAuthentication_" + }, + { + "$ref": "#/components/schemas/UpdateSetNull" + } + ], + "title": "Authentication", + "description": "Set or remove the credentials used for authentication." + }, + "useTls": { + "additionalProperties": false, + "properties": { + "set": { + "title": "Set", + "type": "boolean" + } }, - "title": "Items", - "type": "array", - "minItems": 1, - "maxItems": 100 + "required": [ + "set" + ], + "type": "object", + "description": "Enable or disable TLS to the MQTT broker." + }, + "caCertificate": { + "anyOf": [ + { + "$ref": "#/components/schemas/UpdateItem_CACertificate_" + }, + { + "$ref": "#/components/schemas/UpdateSetNull" + } + ] + }, + "authCertificate": { + "anyOf": [ + { + "$ref": "#/components/schemas/UpdateItem_AuthCertificate_" + }, + { + "$ref": "#/components/schemas/UpdateSetNull" + } + ] } }, - "required": [ - "items" - ], - "title": "Items[CreateJob]", + "title": "UpdateMqttV3Source", "type": "object" }, - "Items_CreateMapping_": { + "UpdateMqttV3SourceItem": { "additionalProperties": false, "properties": { - "items": { - "items": { - "$ref": "#/components/schemas/CreateMapping" - }, - "title": "Items", - "type": "array", - "minLength": 1, - "maxLength": 100 + "type": { + "enum": [ + "mqtt3" + ], + "title": "Type", + "type": "string", + "description": "Source type." + }, + "externalId": { + "$ref": "#/components/schemas/CogniteExternalId" + }, + "update": { + "$ref": "#/components/schemas/UpdateMqttV3Source" } }, "required": [ - "items" + "type", + "externalId", + "update" ], - "title": "Items[CreateMapping]", + "title": "UpdateMqttV3SourceItem", "type": "object" }, - "Items_DestinationUpdateItem_": { + "UpdateMqttV5Source": { "additionalProperties": false, "properties": { - "items": { - "items": { - "$ref": "#/components/schemas/DestinationUpdateItem" + "host": { + "$ref": "#/components/schemas/UpdateItem_Host_" + }, + "port": { + "anyOf": [ + { + "$ref": "#/components/schemas/UpdateItem_Port_" + }, + { + "$ref": "#/components/schemas/UpdateSetNull" + } + ], + "title": "Port", + "description": "Set or remove the port on the MQTT broker." + }, + "authentication": { + "anyOf": [ + { + "$ref": "#/components/schemas/UpdateItem_MqttAuthentication_" + }, + { + "$ref": "#/components/schemas/UpdateSetNull" + } + ], + "title": "Authentication", + "description": "Set or remove the credentials used for authentication." + }, + "useTls": { + "additionalProperties": false, + "properties": { + "set": { + "title": "Set", + "type": "boolean" + } }, - "title": "Items", - "type": "array", - "maxItems": 100, - "minItems": 1 + "required": [ + "set" + ], + "type": "object", + "description": "Enable or disable TLS to the MQTT broker." + }, + "caCertificate": { + "anyOf": [ + { + "$ref": "#/components/schemas/UpdateItem_CACertificate_" + }, + { + "$ref": "#/components/schemas/UpdateSetNull" + } + ] + }, + "authCertificate": { + "anyOf": [ + { + "$ref": "#/components/schemas/UpdateItem_AuthCertificate_" + }, + { + "$ref": "#/components/schemas/UpdateSetNull" + } + ] } }, - "required": [ - "items" - ], - "title": "Items[DestinationUpdateItem]", + "title": "UpdateMqttV5Source", "type": "object" }, - "Items_Destination_": { + "UpdateMqttV5SourceItem": { "additionalProperties": false, "properties": { - "items": { - "items": { - "$ref": "#/components/schemas/Destination" - }, - "title": "Items", - "type": "array", - "maxItems": 100, - "minItems": 0 + "type": { + "enum": [ + "mqtt5" + ], + "title": "Type", + "type": "string", + "description": "Source type." + }, + "externalId": { + "$ref": "#/components/schemas/CogniteExternalId" + }, + "update": { + "$ref": "#/components/schemas/UpdateMqttV5Source" } }, "required": [ - "items" + "type", + "externalId", + "update" ], - "title": "DestinationList", + "title": "UpdateMqttV5SourceItem", "type": "object" }, - "ItemsWithCursor_Destination_": { + "UpdateRestSource": { "additionalProperties": false, "properties": { - "items": { - "items": { - "$ref": "#/components/schemas/Destination" - }, - "title": "Items", - "type": "array", - "maxItems": 100, - "minItems": 0 + "host": { + "$ref": "#/components/schemas/UpdateItem_Host_" }, - "nextCursor": { - "type": "string", - "title": "Next cursor", - "description": "Cursor for pagination" + "scheme": { + "$ref": "#/components/schemas/UpdateItem_RestScheme_" + }, + "port": { + "$ref": "#/components/schemas/UpdateItem_Port_" } }, - "required": [ - "items" - ], - "title": "DestinationListWithCursor", + "title": "UpdateRestSource", "type": "object" }, - "Items_MinimalJob_": { + "UpdateRestSourceItem": { "additionalProperties": false, "properties": { - "items": { - "items": { - "$ref": "#/components/schemas/MinimalJob" - }, - "title": "Items", - "type": "array", - "maxLength": 100, - "minLength": 0 + "type": { + "enum": [ + "rest" + ], + "title": "Type", + "type": "string", + "description": "Source type." + }, + "externalId": { + "$ref": "#/components/schemas/CogniteExternalId" + }, + "update": { + "$ref": "#/components/schemas/UpdateRestSource" } }, "required": [ - "items" + "type", + "externalId", + "update" ], - "title": "JobList", + "title": "UpdateRestSourceItem", "type": "object" }, - "ItemsWithCursor_MinimalJob_": { + "UpdateSetNull": { "additionalProperties": false, "properties": { - "items": { - "items": { - "$ref": "#/components/schemas/MinimalJob" - }, - "title": "Items", - "type": "array", - "maxLength": 100, - "minLength": 0 - }, - "nextCursor": { - "type": "string", - "title": "Next cursor", - "description": "Cursor for pagination" + "setNull": { + "title": "SetNull", + "type": "boolean", + "description": "Clear this value" } }, "required": [ - "items" + "setNull" ], - "title": "JobList", + "title": "UpdateSetNull", "type": "object" }, - "Items_MappingUpdateItem_": { + "UpdateMapping": { "additionalProperties": false, "properties": { - "items": { - "items": { - "$ref": "#/components/schemas/MappingUpdateItem" + "mapping": { + "$ref": "#/components/schemas/UpdateItem_CustomMapping_" + }, + "input": { + "anyOf": [ + { + "$ref": "#/components/schemas/UpdateItem_InputConfig_" + }, + { + "$ref": "#/components/schemas/UpdateSetNull" + } + ], + "description": "Set or remove mapping input. When removed this defaults to json." + }, + "published": { + "additionalProperties": false, + "properties": { + "set": { + "title": "Set", + "type": "boolean" + } }, - "title": "Items", - "type": "array", - "minItems": 1, - "maxItems": 100 + "required": [ + "set" + ], + "type": "object", + "description": "Publish or unpublish the mapping." } }, - "required": [ - "items" - ], - "title": "MappingUpdateList", + "title": "UpdateMapping", "type": "object" }, - "Items_Mapping_": { + "ValueFormat": { "additionalProperties": false, "properties": { - "items": { - "items": { - "$ref": "#/components/schemas/Mapping" - }, - "title": "Items", - "type": "array", - "maxItems": 100, - "minItems": 0 + "type": { + "enum": [ + "value" + ], + "title": "Type", + "type": "string", + "description": "Format type." + }, + "encoding": { + "$ref": "#/components/schemas/EncodingType" + }, + "compression": { + "$ref": "#/components/schemas/CompressionType" + }, + "prefix": { + "$ref": "#/components/schemas/PrefixConfig" } }, "required": [ - "items" + "type" ], - "title": "MappingList", - "type": "object" + "title": "ValueFormat", + "type": "object", + "description": "Assume the source data is on the form `some string` or `123.456`, and convert these into CDF datapoints, using prefix config to determine the timeseries external ID, and current time as timestamp.\nIf no prefix config is set, use the topic name as timeseries ID." }, - "ItemsWithCursor_Mapping_": { + "WriteCustomFormat": { "additionalProperties": false, "properties": { - "items": { - "items": { - "$ref": "#/components/schemas/Mapping" - }, - "title": "Items", - "type": "array", - "maxItems": 100, - "minItems": 0 + "type": { + "enum": [ + "custom" + ], + "title": "Type", + "type": "string", + "description": "Format type." }, - "nextCursor": { + "encoding": { + "$ref": "#/components/schemas/EncodingType" + }, + "compression": { + "$ref": "#/components/schemas/CompressionType" + }, + "mappingId": { + "title": "Mapping ID", "type": "string", - "title": "Next cursor", - "description": "Cursor for pagination" + "description": "ID of the mapping this format should be tied to.", + "maxLength": 255 } }, "required": [ - "items" + "type", + "mappingId" ], - "title": "MappingList", - "type": "object" + "title": "WriteCustomFormat", + "type": "object", + "description": "Format the source data using a custom mapping." }, - "Items_JobUpdateItem_": { - "additionalProperties": false, - "properties": { - "items": { - "items": { - "$ref": "#/components/schemas/JobUpdateItem" - }, - "title": "Items", - "type": "array", - "minLength": 1, - "maxLength": 100 - } - }, + "ValidationErrorContent": { + "type": "object", "required": [ - "items" + "code", + "message" ], - "title": "UpdateJobList", - "type": "object" + "description": "Cognite API error.", + "properties": { + "code": { + "type": "integer", + "description": "HTTP status code.", + "format": "int32", + "example": 422 + }, + "message": { + "type": "string", + "description": "Error message.", + "example": "Extra inputs are not permitted: type" + } + } }, - "Items_JobLogEntry_": { - "additionalProperties": false, + "CustomMapping": { + "type": "object", "properties": { - "items": { - "items": { - "$ref": "#/components/schemas/JobLogEntry" - }, - "title": "Items", - "type": "array", - "maxLength": 1000, - "minLength": 0 + "expression": { + "type": "string", + "description": "Custom transform expression written in the Cognite transformation language.", + "maxLength": 2000 } }, "required": [ - "items" - ], - "title": "JobLogEntryList", - "type": "object" + "expression" + ] }, - "Items_JobMetrics_": { + "KafkaBroker": { + "type": "object", "additionalProperties": false, "properties": { - "items": { - "items": { - "$ref": "#/components/schemas/JobMetrics" - }, - "title": "Items", - "type": "array", - "maxItems": 1000, - "minItems": 0 + "host": { + "title": "Host", + "type": "string", + "description": "Host name or IP address of the bootstrap broker." + }, + "port": { + "title": "Port", + "type": "integer", + "description": "Port on the bootstrap broker to connect to.", + "minimum": 1, + "maximum": 65535 } }, "required": [ - "items" - ], - "title": "JobMetricsList", - "type": "object" + "host", + "port" + ] }, - "JobLogEntry": { + "KafkaBrokerList": { + "type": "array", + "items": { + "$ref": "#/components/schemas/KafkaBroker" + }, + "description": "List of redundant kafka brokers to connect to.", + "minItems": 1, + "maxItems": 8 + }, + "KafkaSource": { + "type": "object", "additionalProperties": false, "properties": { - "jobExternalId": { - "type": "string", - "description": "External ID of the job this log entry belongs to.", - "maxLength": 255 - }, "type": { - "type": "string", "enum": [ - "paused", - "startup_error", - "connection_error", - "connected", - "transform_error", - "destination_error", - "ok" + "kafka" ], - "description": "Type of log entry.\n`paused` indicates that the job has been stopped manually,\n`startup_error` indicates that the job failed to start at all and requires changes to configuration,\n`connected` indicates that the job has connected to the source but did not yet receive any data,\n`transform_error` indicates that the job received data, but it failed to transform,\n`destination_error` indicates that ingesting the data to CDF failed,\n`ok` means that data was successfully ingested to CDF." - }, - "message": { + "title": "Type", "type": "string", - "description": "Log message. Not all log entries have messages." + "description": "Source type." + }, + "externalId": { + "$ref": "#/components/schemas/CogniteExternalId" + }, + "bootstrapBrokers": { + "$ref": "#/components/schemas/KafkaBrokerList" + }, + "authentication": { + "$ref": "#/components/schemas/KafkaAuthentication" }, "createdTime": { "$ref": "#/components/schemas/EpochTimestamp" + }, + "lastUpdatedTime": { + "$ref": "#/components/schemas/EpochTimestamp" + }, + "caCertificate": { + "$ref": "#/components/schemas/CertificateDetails" + }, + "authCertificate": { + "$ref": "#/components/schemas/CertificateDetails" + }, + "useTls": { + "type": "boolean", + "title": "UseTLS", + "description": "Indicates whether TLS will be used for connection to broker." } }, - "title": "JobLogEntry", - "type": "object", "required": [ - "jobExternalId", + "bootstrapBrokers", + "externalId", "type", - "createdTime" + "createdTime", + "lastUpdatedTime" ] }, - "JobMetrics": { + "CreateKafkaSource": { + "type": "object", "additionalProperties": false, "properties": { - "jobExternalId": { + "type": { + "enum": [ + "kafka" + ], + "title": "Type", "type": "string", - "description": "External ID of the job this metrics batch belongs to.", - "maxLength": 255 - }, - "timestamp": { - "title": "Timestamp", - "description": "The number of milliseconds since 00:00:00 Thursday, 1 January 1970, Coordinated Universal Time (UTC), minus leap seconds.\nMetrics are from the UTC hour this timestamp is ingest. For example, if this timestamp is at 01:43:15, the metrics batch contains metrics from 01:00:00 to 01:43:15.", - "type": "integer", - "minimum": 0, - "format": "int64" - }, - "sourceMessages": { - "title": "SourceMessages", - "minimum": 0, - "format": "int64", - "type": "integer", - "description": "Messages received from the source." - }, - "destinationInputValues": { - "title": "DestinationInputValues", - "minimum": 0, - "format": "int64", - "type": "integer", - "description": "CDF resources successfully transformed and passed to the destination." + "description": "Source type." }, - "destinationRequests": { - "title": "DestinationRequests", - "minimum": 0, - "format": "int64", - "type": "integer", - "description": "Requests made to CDF containing data produced by this job." + "externalId": { + "$ref": "#/components/schemas/CogniteExternalId" }, - "transformFailures": { - "title": "TransformFailures", - "minimum": 0, - "format": "int64", - "type": "integer", - "description": "Source messages that failed to transform." + "bootstrapBrokers": { + "$ref": "#/components/schemas/KafkaBrokerList" }, - "destinationWriteFailures": { - "title": "DestinationWriteFailures", - "minimum": 0, - "format": "int64", - "type": "integer", - "description": "Times the destination received data from transformations, but failed to produce a valid request to CDF." + "authentication": { + "$ref": "#/components/schemas/KafkaAuthenticationWrite" }, - "destinationSkippedValues": { - "title": "DestinationSkippedValues", - "minimum": 0, - "format": "int64", - "type": "integer", - "description": "Values the destination received from the source, then decided to skip due to data type mismatch, invalid content, or other." + "useTls": { + "type": "boolean", + "title": "UseTLS", + "description": "If true, use TLS when connecting to the broker" }, - "destinationFailedValues": { - "title": "DestinationFailedValues", - "minimum": 0, - "format": "int64", - "type": "integer", - "description": "Values the destination was unable to upload to CDF." + "caCertificate": { + "$ref": "#/components/schemas/CACertificate" }, - "destinationUploadedValues": { - "title": "DestinationUploadedValues", - "minimum": 0, - "format": "int64", - "type": "integer", - "description": "Values the destination successfully uploaded to CDF." + "authCertificate": { + "$ref": "#/components/schemas/AuthCertificate" } - } + }, + "required": [ + "bootstrapBrokers", + "externalId", + "type" + ] }, - "JobTargetStatus": { - "enum": [ - "running", - "paused" + "UpdateItem_KafkaBrokers_": { + "additionalProperties": false, + "properties": { + "set": { + "$ref": "#/components/schemas/KafkaBrokerList" + } + }, + "required": [ + "set" ], - "title": "JobTargetStatus", - "description": "The target status of a job. Set this to start or stop the job.", - "type": "string" + "title": "UpdateItem_KafkaBrokers", + "type": "object", + "description": "Set a new list of redundant kafka brokers." }, - "JobUpdate": { + "UpdateItem_Partitions_": { "additionalProperties": false, "properties": { - "destinationId": { - "$ref": "#/components/schemas/UpdateItem_DestinationId_" - }, - "format": { - "$ref": "#/components/schemas/UpdateFormat" - }, - "sourceId": { - "$ref": "#/components/schemas/UpdateItem_SourceId_" - }, - "targetStatus": { - "$ref": "#/components/schemas/UpdateItem_JobTargetStatus_" - }, - "config": { - "$ref": "#/components/schemas/UpdateItem_JobConfig_" + "set": { + "type": "integer", + "title": "Partitions", + "description": "The number of partitions in the broker.", + "minimum": 1, + "maximum": 10, + "default": 1 } }, - "title": "JobUpdate", - "type": "object" + "description": "Set a new number of kafka partitions.", + "type": "object", + "title": "UpdateItem_Partitions", + "required": [ + "set" + ] }, - "MinimalJob": { + "UpdateKafkaSource": { "additionalProperties": false, "properties": { - "externalId": { - "$ref": "#/components/schemas/CogniteExternalId" - }, - "destinationId": { - "title": "Destination ID", - "description": "ID of the destination this job writes to.", - "type": "string", - "maxLength": 255 - }, - "sourceId": { - "title": "Source ID", - "description": "ID of the source this job reads from.", - "type": "string", - "maxLength": 255 + "bootstrapBrokers": { + "$ref": "#/components/schemas/UpdateItem_KafkaBrokers_" }, - "format": { - "discriminator": { - "mapping": { - "cognite": "#/components/schemas/CogniteFormat", - "custom": "#/components/schemas/CustomFormat", - "rockwell": "#/components/schemas/RockwellFormat", - "value": "#/components/schemas/ValueFormat" + "authentication": { + "anyOf": [ + { + "$ref": "#/components/schemas/UpdateItem_KafkaAuthentication_" }, - "propertyName": "type" + { + "$ref": "#/components/schemas/UpdateSetNull" + } + ], + "title": "Authentication", + "description": "Set or remove the credentials used for authentication." + }, + "useTls": { + "additionalProperties": false, + "properties": { + "set": { + "title": "Set", + "type": "boolean" + } }, - "oneOf": [ + "required": [ + "set" + ], + "type": "object", + "description": "Enable or disable TLS to the Kafka broker." + }, + "caCertificate": { + "anyOf": [ { - "$ref": "#/components/schemas/RockwellFormat" + "$ref": "#/components/schemas/UpdateItem_CACertificate_" }, { - "$ref": "#/components/schemas/CogniteFormat" - }, + "$ref": "#/components/schemas/UpdateSetNull" + } + ] + }, + "authCertificate": { + "anyOf": [ { - "$ref": "#/components/schemas/CustomFormat" + "$ref": "#/components/schemas/UpdateItem_AuthCertificate_" }, { - "$ref": "#/components/schemas/ValueFormat" + "$ref": "#/components/schemas/UpdateSetNull" } - ], - "title": "Format" - }, - "targetStatus": { - "$ref": "#/components/schemas/JobTargetStatus" - }, - "status": { - "title": "Status", - "description": "Status of this job.", + ] + } + } + }, + "UpdateKafkaSourceItem": { + "additionalProperties": false, + "properties": { + "type": { "enum": [ - "startup_error", - "paused", - "shutting_down", - "connected", - "running", - "waiting", - "connection_error", - "destination_error", - "transform_error" + "kafka" ], - "type": "string" - }, - "config": { - "$ref": "#/components/schemas/JobConfig" + "title": "Type", + "type": "string", + "description": "Source type." }, - "createdTime": { - "$ref": "#/components/schemas/EpochTimestamp" + "externalId": { + "$ref": "#/components/schemas/CogniteExternalId" }, - "lastUpdatedTime": { - "$ref": "#/components/schemas/EpochTimestamp" + "update": { + "$ref": "#/components/schemas/UpdateKafkaSource" } }, - "required": [ - "sourceId", - "destinationId", + "required": [ + "type", "externalId", - "createdTime", - "lastUpdatedTime", - "status", - "targetStatus", - "format" + "update" ], - "title": "Job", + "title": "UpdateKafkaSourceItem", "type": "object" }, - "MqttV3Source": { + "SimpleBasicAuthentication": { "additionalProperties": false, + "type": "object", + "title": "BasicAuthentication", + "description": "Username and password authentication.", "properties": { "type": { "enum": [ - "mqtt3" + "basic" ], "title": "Type", "type": "string", - "description": "Source type." - }, - "externalId": { - "$ref": "#/components/schemas/CogniteExternalId" - }, - "host": { - "title": "Host", - "type": "string", - "description": "Host or IP address of the MQTT broker to connect to.", - "maxLength": 200 - }, - "port": { - "type": "integer", - "title": "Port", - "description": "Port to connect to on the MQTT broker.", - "default": 1883, - "minimum": 1, - "maximum": 65535 + "description": "Authentication type" }, "username": { "type": "string", "title": "Username", "description": "Username used for authenticating with the broker.", "maxLength": 200 - }, - "useTls": { - "type": "boolean", - "title": "UseTls", - "description": "If true, use TLS when connecting to the broker." - }, - "createdTime": { - "$ref": "#/components/schemas/EpochTimestamp" - }, - "lastUpdatedTime": { - "$ref": "#/components/schemas/EpochTimestamp" - }, - "caCertificate": { - "$ref": "#/components/schemas/CertificateDetails" - }, - "authCertificate": { - "$ref": "#/components/schemas/CertificateDetails" } }, "required": [ - "type", - "externalId", - "host", - "createdTime", - "lastUpdatedTime" - ], - "title": "MqttV3Source", - "type": "object" + "username", + "type" + ] }, - "MqttV5Source": { + "SimpleBasicAuthenticationWrite": { "additionalProperties": false, + "type": "object", + "title": "BasicAuthenticationWrite", + "description": "Username and password authentication.", "properties": { "type": { "enum": [ - "mqtt5" + "basic" ], "title": "Type", "type": "string", - "description": "Source type." + "description": "Authentication type" }, - "externalId": { - "$ref": "#/components/schemas/CogniteExternalId" + "username": { + "type": "string", + "title": "Username", + "description": "Username used for basic authentication.", + "maxLength": 200 }, - "host": { - "title": "Host", + "password": { "type": "string", - "description": "Host or IP address of the MQTT broker to connect to.", + "title": "Password", + "description": "Password used for basic authentication.", "maxLength": 200 + } + }, + "required": [ + "username", + "type" + ] + }, + "KafkaAuthentication": { + "type": "object", + "discriminator": { + "mapping": { + "basic": "#/components/schemas/SimpleBasicAuthentication" }, - "port": { + "propertyName": "type" + }, + "oneOf": [ + { + "$ref": "#/components/schemas/SimpleBasicAuthentication" + } + ], + "title": "Authentication", + "description": "Method used for authenticating with the kafka brokers.\nThis may be used together with auth certificate." + }, + "KafkaAuthenticationWrite": { + "type": "object", + "discriminator": { + "mapping": { + "basic": "#/components/schemas/SimpleBasicAuthenticationWrite" + }, + "propertyName": "type" + }, + "oneOf": [ + { + "$ref": "#/components/schemas/SimpleBasicAuthenticationWrite" + } + ], + "title": "Authentication", + "description": "Method used for authenticating with the kafka brokers.\nThis may be used together with auth certificate." + }, + "MqttAuthentication": { + "type": "object", + "discriminator": { + "mapping": { + "basic": "#/components/schemas/SimpleBasicAuthentication" + }, + "propertyName": "type" + }, + "oneOf": [ + { + "$ref": "#/components/schemas/SimpleBasicAuthentication" + } + ], + "title": "Authentication", + "description": "Method used for authenticating with the mqtt broker.\nThis may be used together with auth certificate." + }, + "MqttAuthenticationWrite": { + "type": "object", + "discriminator": { + "mapping": { + "basic": "#/components/schemas/SimpleBasicAuthenticationWrite" + }, + "propertyName": "type" + }, + "oneOf": [ + { + "$ref": "#/components/schemas/SimpleBasicAuthenticationWrite" + } + ], + "title": "Authentication", + "description": "Method used for authenticating with the mqtt broker.\nThis may be used together with auth certificate." + }, + "FilterUsers": { + "type": "object", + "additionalProperties": false, + "title": "Filter Users", + "properties": { + "limit": { "type": "integer", - "title": "Port", - "description": "Port to connect to on the MQTT broker.", - "default": 1883, "minimum": 1, - "maximum": 65535 + "maximum": 10, + "format": "int32" }, - "username": { + "cursor": { "type": "string", - "title": "Username", - "description": "Username used for authenticating with the broker.", - "maxLength": 200 - }, - "useTls": { - "type": "boolean", - "title": "UseTls", - "description": "If true, use TLS when connecting to the broker." + "title": "Cursor", + "description": "Cursor for pagination" + } + } + }, + "Username": { + "type": "string", + "title": "Username", + "description": "Username to authenticate the user on the DB." + }, + "Tablename": { + "type": "string", + "title": "Tablename", + "maxLength": 60, + "minLength": 1 + }, + "UsernameWrapper": { + "type": "object", + "additionalProperties": false, + "required": [ + "username" + ], + "properties": { + "username": { + "$ref": "#/components/schemas/Username" + } + } + }, + "TablenameWrapper": { + "type": "object", + "additionalProperties": false, + "required": [ + "tablename" + ], + "properties": { + "tablename": { + "$ref": "#/components/schemas/Tablename" + } + } + }, + "FdwUser": { + "type": "object", + "required": [ + "username", + "createdTime" + ], + "description": "A user", + "properties": { + "username": { + "$ref": "#/components/schemas/Username" }, "createdTime": { "$ref": "#/components/schemas/EpochTimestamp" @@ -58530,427 +67760,612 @@ "lastUpdatedTime": { "$ref": "#/components/schemas/EpochTimestamp" }, - "caCertificate": { - "$ref": "#/components/schemas/CertificateDetails" - }, - "authCertificate": { - "$ref": "#/components/schemas/CertificateDetails" + "sessionId": { + "type": "integer", + "title": "Session ID", + "minimum": 1, + "maximum": 9007199254740991, + "format": "int64", + "description": "ID of the session tied to this user." } - }, - "required": [ - "type", - "externalId", - "host", - "createdTime", - "lastUpdatedTime" + } + }, + "TableType": { + "enum": [ + "raw_rows", + "built_in", + "nodes", + "edges" ], - "title": "MqttV5Source", - "type": "object" + "type": "string", + "title": "TableType", + "description": "The type of table (usually built_in) but could be any of raw_rows, nodes or edges when custom." }, - "PrefixConfig": { + "RawTableOptions": { + "type": "object", "additionalProperties": false, + "description": "Raw rows options", + "required": [ + "database", + "table" + ], "properties": { - "fromTopic": { - "type": "boolean", - "title": "FromTopic", - "description": "Generate the prefix based on the topic of the received message." + "database": { + "type": "string" }, - "prefix": { - "type": "string", - "title": "Prefix", - "description": "A fixed prefix to the generated IDs.", - "maxLength": 255 + "table": { + "type": "string" + }, + "primaryKey": { + "type": "string" } - }, - "title": "PrefixConfig", - "description": "Generate a prefix for resources created using this format. If both `prefix` and `fromTopic` are set, the generated ID will be on the form `[prefix][topic][id]`", - "type": "object" + } }, - "RestInterval": { - "enum": [ - "5m", - "15m", - "1h", - "6h", - "12h", - "1d" + "FdmTableOptions": { + "type": "object", + "additionalProperties": false, + "description": "Fdm table options", + "required": [ + "space", + "externalId" ], - "title": "RestInterval", - "type": "string" + "properties": { + "space": { + "type": "string" + }, + "externalId": { + "type": "string" + }, + "version": { + "type": "string" + } + } }, - "RestSource": { + "Column_": { + "type": "object", + "description": "Foreign table columns.", + "additionalProperties": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "TEXT", + "VARCHAR", + "BOOL", + "BIGINT", + "DOUBLE PRECISION", + "REAL", + "TIMESTAMPTZ", + "JSON", + "TEXT[]", + "VARCHAR[]", + "BOOL[]", + "BIGINT[]", + "DOUBLE PRECISION[]", + "REAL[]", + "JSON[]", + "BYTEA" + ] + } + } + } + }, + "TableOptions": { + "description": "Table options", + "title": "Table Options", + "oneOf": [ + { + "$ref": "#/components/schemas/FdmTableOptions" + }, + { + "$ref": "#/components/schemas/RawTableOptions" + } + ] + }, + "Table": { + "type": "object", "additionalProperties": false, + "title": "(Custom) Table", + "description": "Foreign tables", "properties": { + "columns": { + "$ref": "#/components/schemas/Column_" + }, + "options": { + "$ref": "#/components/schemas/TableOptions" + }, "type": { - "enum": [ - "rest" - ], - "title": "Type", - "type": "string", - "description": "Source type." + "$ref": "#/components/schemas/TableType" }, - "externalId": { - "$ref": "#/components/schemas/CogniteExternalId" + "tablename": { + "$ref": "#/components/schemas/Tablename" + } + } + }, + "TableCreated": { + "type": "object", + "additionalProperties": false, + "title": "Table Created Response", + "description": "Foreign tables", + "properties": { + "columns": { + "$ref": "#/components/schemas/Column_" }, - "host": { - "title": "Host", - "type": "string", - "description": "Host or IP address to connect to.", - "maxLength": 200 + "options": { + "$ref": "#/components/schemas/TableOptions" }, - "scheme": { - "title": "Scheme", + "createdTime": { + "$ref": "#/components/schemas/EpochTimestamp" + }, + "type": { "type": "string", - "description": "Type of connection to establish", + "title": "Table Type", "enum": [ - "http", - "https" + "raw_rows", + "view" ] }, - "port": { - "type": "integer", - "title": "Port", - "description": "Port on server to connect to. Uses default ports based on the scheme if omitted.", - "minimum": 1, - "maximum": 65535 + "tablename": { + "$ref": "#/components/schemas/Tablename" + } + } + }, + "UserCreated": { + "type": "object", + "required": [ + "username", + "password", + "createdTime", + "host" + ], + "description": "A user", + "properties": { + "host": { + "type": "string", + "title": "The connection host for the postgres instance.", + "example": "fdw..cogniteapp.com" }, - "authentication": { - "discriminator": { - "mapping": { - "basic": "#/components/schemas/BasicAuthentication", - "header": "#/components/schemas/HeaderValueAuthentication", - "query": "#/components/schemas/QueryParamAuthentication", - "clientCredentials": "#/components/schemas/ClientCredentialsAuthentication" - }, - "propertyName": "type" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/BasicAuthentication" - }, - { - "$ref": "#/components/schemas/HeaderValueAuthentication" - }, - { - "$ref": "#/components/schemas/QueryParamAuthentication" - }, - { - "$ref": "#/components/schemas/ClientCredentialsAuthentication" - } - ], - "title": "Authentication", - "description": "Authentication details for source" + "username": { + "$ref": "#/components/schemas/Username" + }, + "password": { + "type": "string", + "title": "Password", + "description": "Password to authenticate the user on the DB." }, "createdTime": { "$ref": "#/components/schemas/EpochTimestamp" }, "lastUpdatedTime": { "$ref": "#/components/schemas/EpochTimestamp" + }, + "sessionId": { + "type": "integer", + "title": "Session ID", + "minimum": 1, + "maximum": 9007199254740991, + "format": "int64", + "description": "ID of the session tied to this user." + } + } + }, + "UpdateItem_SessionCredentials": { + "additionalProperties": false, + "properties": { + "set": { + "$ref": "#/components/schemas/SessionCredentials" } }, "required": [ - "type", - "externalId", - "host", - "interval", - "createdTime", - "lastUpdatedTime", - "scheme" + "set" ], - "title": "RestSource", - "type": "object" + "title": "UpdateItem_SessionCredentials", + "type": "object", + "description": "Set a new set of session credentials for writing to CDF." }, - "CreateBasicAuthentication": { + "CreateUser": { + "type": "object", + "title": "Create User", "additionalProperties": false, + "required": [ + "credentials" + ], "properties": { - "type": { - "enum": [ - "basic" - ], - "title": "Type", - "type": "string", - "description": "Authentication type." - }, - "username": { - "title": "User name", - "description": "User name to use for basic authentication", - "type": "string" - }, - "password": { - "title": "Password", - "description": "Password to use for basic authentication", - "type": "string" + "credentials": { + "$ref": "#/components/schemas/SessionCredentials" } - }, + } + }, + "UpdateUser": { + "additionalProperties": false, + "type": "object", + "properties": { + "credentials": { + "$ref": "#/components/schemas/UpdateItem_SessionCredentials" + } + } + }, + "UserUpdateItem": { + "type": "object", + "additionalProperties": false, "required": [ "username", - "password", - "type" + "update" ], - "title": "CreateBasicAuthentication", - "type": "object" + "properties": { + "username": { + "$ref": "#/components/schemas/Username" + }, + "update": { + "$ref": "#/components/schemas/UpdateUser" + } + } }, - "CreateHeaderValueAuthentication": { + "CreateTable_": { + "type": "object", "additionalProperties": false, + "required": [ + "type", + "tablename" + ], "properties": { "type": { "enum": [ - "header" + "raw_rows", + "view" ], "title": "Type", + "type": "string" + }, + "tablename": { "type": "string", - "description": "Authentication type." + "title": "Tablename", + "maxLength": 60, + "minLength": 1, + "description": "Name of the foreign table.\\\n__CANNOT__ be any of the the built-in table names found [here](https://docs.cognite.com/cdf/integration/guides/interfaces/ingest_into_raw#create-a-table)\n" + } + } + }, + "CreateRawTable": { + "type": "object", + "title": "Create Raw Table", + "additionalProperties": false, + "required": [ + "type", + "options", + "columns" + ], + "allOf": [ + { + "$ref": "#/components/schemas/CreateTable_" }, - "key": { - "title": "Header key", - "description": "Key for the header to place the authentication token in", - "type": "string" + { + "type": "object", + "properties": { + "type": { + "enum": [ + "raw_rows" + ], + "title": "Type", + "type": "string" + }, + "options": { + "$ref": "#/components/schemas/RawTableOptions" + }, + "columns": { + "$ref": "#/components/schemas/Column_" + } + } + } + ], + "discriminator": { + "propertyName": "type" + } + }, + "CreateFdmTable": { + "type": "object", + "title": "Create Fdm table", + "additionalProperties": false, + "required": [ + "type", + "tablename", + "options" + ], + "allOf": [ + { + "$ref": "#/components/schemas/CreateTable_" + }, + { + "type": "object", + "properties": { + "type": { + "enum": [ + "view" + ], + "title": "Type", + "type": "string" + }, + "options": { + "$ref": "#/components/schemas/FdmTableOptions" + } + } + } + ], + "discriminator": { + "propertyName": "type" + } + }, + "CreateTable": { + "type": "object", + "title": "Create Table", + "additionalProperties": false, + "discriminator": { + "mapping": { + "raw_rows": "#/components/schemas/CreateRawTable", + "view": "#/components/schemas/CreateFdmTable" + }, + "propertyName": "type" + }, + "oneOf": [ + { + "$ref": "#/components/schemas/CreateRawTable" }, - "value": { - "title": "Value", - "description": "Value of the authentication token", - "type": "string" + { + "$ref": "#/components/schemas/CreateFdmTable" } - }, + ] + }, + "Items_CreateTable_": { + "additionalProperties": false, "required": [ - "key", - "value", - "type" + "items" ], - "title": "CreateHeaderValueAuthentication", - "type": "object" + "properties": { + "items": { + "items": { + "$ref": "#/components/schemas/CreateTable" + }, + "title": "Items", + "type": "array", + "minLength": 1, + "maxLength": 10 + } + } }, - "CreateQueryParamAuthentication": { + "ItemsWithoutCursor_TableCreated_": { + "type": "object", "additionalProperties": false, "properties": { - "type": { - "enum": [ - "query" - ], - "title": "Type", - "type": "string", - "description": "Authentication type." - }, - "key": { - "title": "Query parameter key", - "description": "Key for the query parameter to place the authentication token in", - "type": "string" - }, - "value": { - "title": "Value", - "description": "Value of the authentication token", - "type": "string" + "items": { + "items": { + "$ref": "#/components/schemas/TableCreated" + }, + "title": "Items", + "type": "array" } }, "required": [ - "key", - "value" - ], - "title": "CreateQueryParamAuthentication", - "type": "object" + "items" + ] }, - "CreateClientCredentialsAuthentication": { + "ItemsWithoutCursor_Table_": { + "type": "object", "additionalProperties": false, "properties": { - "type": { - "enum": [ - "clientCredentials" - ], - "title": "Type", - "type": "string", - "description": "Authentication type." - }, - "clientId": { - "title": "Client ID", - "description": "Client ID for for the service principal used by the extractor", - "type": "string" - }, - "clientSecret": { - "title": "Client secret", - "description": "Client secret for for the service principal used by the extractor", - "type": "string" - }, - "tokenUrl": { - "title": "Token URL", - "description": "URL to fetch authentication tokens from", - "type": "string" - }, - "scopes": { - "title": "Scopes", - "description": "A space separated list of scopes", - "type": "string" + "items": { + "items": { + "$ref": "#/components/schemas/Table" + }, + "title": "Items", + "type": "array" } }, "required": [ - "clientId", - "clientSecret", - "tokenUrl", - "scopes" - ], - "title": "CreateClientCredentialsAuthentication", - "type": "object" + "items" + ] }, - "BasicAuthentication": { + "ItemsWithCursor_Table_": { + "type": "object", "additionalProperties": false, "properties": { - "type": { - "enum": [ - "basic" - ], - "title": "Type", - "type": "string", - "description": "Authentication type." + "items": { + "items": { + "$ref": "#/components/schemas/Table" + }, + "title": "Items", + "type": "array", + "maxItems": 100, + "minItems": 0 }, - "username": { - "title": "User name", - "description": "User name to use for basic authentication", - "type": "string" + "nextCursor": { + "type": "string", + "title": "Next cursor", + "description": "Cursor for pagination" } }, "required": [ - "username" - ], - "title": "BasicAuthentication", - "type": "object" + "items" + ] }, - "HeaderValueAuthentication": { + "ItemsWithIgnoreUnknown_Tablename_": { + "type": "object", "additionalProperties": false, + "title": "List of postgres table names", "properties": { - "type": { - "enum": [ - "header" - ], - "title": "Type", - "type": "string", - "description": "Authentication type." + "items": { + "items": { + "$ref": "#/components/schemas/TablenameWrapper" + }, + "title": "Items", + "type": "array", + "maxItems": 10, + "minItems": 1 }, - "key": { - "title": "Header key", - "description": "Key for the header to place the authentication token in", - "type": "string" + "ignoreUnknownIds": { + "type": "boolean", + "title": "IgnoreUnknown", + "description": "Ignore table names not found" } - }, - "required": [ - "key" - ], - "title": "HeaderValueAuthentication", - "type": "object" + } }, - "QueryParamAuthentication": { + "ItemsWithCursor_User_": { + "type": "object", "additionalProperties": false, "properties": { - "type": { - "enum": [ - "query" - ], - "title": "Type", - "type": "string", - "description": "Authentication type." + "items": { + "items": { + "$ref": "#/components/schemas/FdwUser" + }, + "title": "Items", + "type": "array", + "maxItems": 100, + "minItems": 0 }, - "key": { - "title": "Query parameter key", - "description": "Key for the query parameter to place the authentication token in", - "type": "string" + "nextCursor": { + "type": "string", + "title": "Next cursor", + "description": "Cursor for pagination" } }, "required": [ - "key" - ], - "title": "QueryParamAuthentication", - "type": "object" + "items" + ] }, - "ClientCredentialsAuthentication": { + "ItemsWithoutCursor_User_": { + "type": "object", "additionalProperties": false, "properties": { - "type": { - "enum": [ - "clientCredentials" - ], - "title": "Type", - "type": "string", - "description": "Authentication type." - }, - "clientId": { - "title": "Client ID", - "description": "Client ID for for the service principal used by the extractor", - "type": "string" - }, - "tokenUrl": { - "title": "Token URL", - "description": "URL to fetch authentication tokens from", - "type": "string" - }, - "scopes": { - "title": "Scopes", - "description": "A space separated list of scopes", - "type": "string" + "items": { + "items": { + "$ref": "#/components/schemas/FdwUser" + }, + "title": "Items", + "type": "array", + "minItems": 0 } }, "required": [ - "clientId", - "tokenUrl", - "scopes" - ], - "title": "ClientCredentialsAuthentication", - "type": "object" + "items" + ] }, - "RockwellFormat": { + "ItemsWithCursor_UserCreated_": { + "type": "object", "additionalProperties": false, "properties": { - "type": { - "enum": [ - "rockwell" - ], - "title": "Type", - "type": "string", - "description": "Format type." - }, - "preProcessingLayers": { - "$ref": "#/components/schemas/PreProcessingLayers" - }, - "prefix": { - "$ref": "#/components/schemas/PrefixConfig" + "items": { + "items": { + "$ref": "#/components/schemas/UserCreated" + }, + "title": "Items", + "type": "array", + "minLength": 1, + "maxLength": 10 } }, "required": [ - "type" + "items" + ] + }, + "Items_CreateUser_": { + "type": "object", + "additionalProperties": false, + "title": "CreateUser list", + "required": [ + "items" ], - "title": "RockwellFormat", - "description": "Transform data on the Rockwell FactoryTalk format into CDF timeseries", - "type": "object" + "properties": { + "items": { + "items": { + "$ref": "#/components/schemas/CreateUser" + }, + "title": "Items", + "type": "array", + "minLength": 1, + "maxLength": 10 + } + } }, - "SessionCredentials": { + "ItemsWithIgnoreUnknown_Username_": { + "type": "object", "additionalProperties": false, + "required": [ + "items" + ], "properties": { - "nonce": { - "title": "Nonce", - "type": "string", - "description": "Session nonce for a recently created CDF Session." + "items": { + "items": { + "$ref": "#/components/schemas/UsernameWrapper" + }, + "type": "array", + "maxItems": 10, + "minItems": 1 + }, + "ignoreUnknownIds": { + "type": "boolean", + "description": "Ignore usernames that are not found" } - }, + } + }, + "Items_UserUpdate_": { + "additionalProperties": false, + "title": "Items[UserUpdate]", + "type": "object", "required": [ - "nonce" + "items" ], - "title": "SessionCredentials", + "properties": { + "items": { + "items": { + "$ref": "#/components/schemas/UserUpdateItem" + }, + "title": "Items", + "maxItems": 10, + "minItems": 1 + } + } + }, + "ValidationErrorContent_": { "type": "object", - "description": "Credentials for authenticating towards CDF using a CDF session." + "required": [ + "code", + "message" + ], + "description": "Cognite API error.", + "properties": { + "code": { + "type": "integer", + "description": "HTTP status code.", + "format": "int32", + "example": 422 + }, + "message": { + "type": "string", + "description": "Error message.", + "example": "Extra inputs are not permitted: type" + } + } }, - "Mapping": { + "Instance": { "additionalProperties": false, "properties": { "externalId": { "$ref": "#/components/schemas/CogniteExternalId" }, - "mapping": { - "$ref": "#/components/schemas/CustomMapping" + "gatewayUrl": { + "title": "gatewayUrl", + "type": "string", + "description": "SAP NetWeaver Gateway URL" }, - "input": { - "$ref": "#/components/schemas/InputConfig" + "client": { + "title": "client", + "type": "integer", + "description": "SAP client number" }, - "published": { - "title": "Published", - "type": "boolean", - "description": "Whether this mapping is published and should be available to be used in jobs." + "username": { + "title": "username", + "type": "string", + "description": "SAP username to use when connecting to the SAP NetWeaver Gateway URL" }, "createdTime": { "$ref": "#/components/schemas/EpochTimestamp" @@ -58961,1108 +68376,984 @@ }, "required": [ "externalId", - "mapping", - "published", + "gatewayUrl", + "client", "lastUpdatedTime", - "createdTime", - "input" + "createdTime" ], - "title": "Mapping", + "title": "Instance", "type": "object" }, - "MappingUpdateItem": { + "Endpoint": { "additionalProperties": false, "properties": { "externalId": { "$ref": "#/components/schemas/CogniteExternalId" }, - "update": { - "$ref": "#/components/schemas/UpdateMapping" - } - }, - "required": [ - "externalId", - "update" - ], - "title": "MappingUpdateItem", - "type": "object" - }, - "UpdateDestination": { - "additionalProperties": false, - "properties": { - "credentials": { - "anyOf": [ - { - "$ref": "#/components/schemas/UpdateSetNull" - }, - { - "$ref": "#/components/schemas/UpdateItem_SessionCredentials_" - } - ], - "title": "Credentials", - "description": "Set a new session, or remove the value." - }, - "datasetId": { - "anyOf": [ - { - "$ref": "#/components/schemas/UpdateSetNull" - }, - { - "$ref": "#/components/schemas/UpdateItem_DatasetId_" - } - ], - "title": "Dataset Id", - "description": "Set a new value for the dataset ID, or remove the value." - } - }, - "title": "UpdateDestination", - "type": "object" - }, - "UpdateEventHubSource": { - "additionalProperties": false, - "properties": { - "host": { - "$ref": "#/components/schemas/UpdateItem_Host_" - }, - "eventHubName": { - "additionalProperties": false, - "properties": { - "set": { - "title": "Set", - "type": "string", - "maxLength": 200 - } - }, - "required": [ - "set" - ], - "type": "object", - "description": "Set a new value for the event hub name." - }, - "keyName": { - "additionalProperties": false, - "properties": { - "set": { - "title": "Set", - "type": "string", - "maxLength": 200 - } - }, - "required": [ - "set" - ], - "type": "object", - "description": "Set a new value for the key name." + "endpointType": { + "title": "endpointType", + "type": "string", + "description": "SAP OData endpoint type", + "enum": [ + "notification", + "attachment" + ] }, - "keyValue": { - "additionalProperties": false, - "properties": { - "set": { - "title": "Set", - "type": "string", - "maxLength": 200 - } - }, - "required": [ - "set" - ], - "type": "object", - "description": "Set a new value for the key value." + "instanceId": { + "title": "Instance ID", + "description": "ID of the SAP instance the endpoint should connect to.", + "type": "string", + "maxLength": 255 }, - "consumerGroup": { - "anyOf": [ - { - "type": "object", - "required": [ - "set" - ], - "properties": { - "set": { - "title": "Set", - "type": "string", - "maxLength": 200 - } - } - }, - { - "$ref": "#/components/schemas/UpdateSetNull" - } - ], - "title": "ConsumerGroup", - "description": "Set a new value for the consumer group, or remove the value." - } - }, - "title": "UpdateEventHubSource", - "type": "object" - }, - "UpdateEventHubSourceItem": { - "additionalProperties": false, - "properties": { - "type": { - "enum": [ - "eventhub" - ], - "title": "Type", + "mappingId": { + "title": "SchemaMapping ID", + "description": "ID of the schema mapping used by this endpoint to transform the writeback request.", "type": "string", - "description": "Source type." + "maxLength": 255 }, - "externalId": { - "$ref": "#/components/schemas/CogniteExternalId" + "createdTime": { + "$ref": "#/components/schemas/EpochTimestamp" }, - "update": { - "$ref": "#/components/schemas/UpdateEventHubSource" + "lastUpdatedTime": { + "$ref": "#/components/schemas/EpochTimestamp" } }, "required": [ - "type", "externalId", - "update" + "endpointType", + "instanceId", + "lastUpdatedTime", + "createdTime" ], - "title": "UpdateEventHubSourceItem", + "title": "Endpoint", "type": "object" }, - "UpdateFormat": { + "SchemaMapping": { "additionalProperties": false, "properties": { - "set": { - "discriminator": { - "mapping": { - "cognite": "#/components/schemas/CogniteFormat", - "custom": "#/components/schemas/WriteCustomFormat", - "rockwell": "#/components/schemas/RockwellFormat", - "value": "#/components/schemas/ValueFormat" - }, - "propertyName": "type" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/RockwellFormat" - }, - { - "$ref": "#/components/schemas/CogniteFormat" - }, - { - "$ref": "#/components/schemas/WriteCustomFormat" - }, - { - "$ref": "#/components/schemas/ValueFormat" - } - ], - "title": "Set" + "externalId": { + "$ref": "#/components/schemas/CogniteExternalId" + }, + "expression": { + "type": "string", + "description": "Custom transform expression written in the Cognite mapping language.", + "maxLength": 2000 + }, + "createdTime": { + "$ref": "#/components/schemas/EpochTimestamp" + }, + "lastUpdatedTime": { + "$ref": "#/components/schemas/EpochTimestamp" } }, "required": [ - "set" + "externalId", + "expression", + "lastUpdatedTime", + "createdTime" ], - "title": "UpdateFormat", - "type": "object", - "description": "Set a new format." + "title": "SchemaMapping", + "type": "object" }, - "UpdateItem_AuthCertificate_": { + "Request": { "additionalProperties": false, "properties": { - "set": { - "$ref": "#/components/schemas/AuthCertificate" + "endpointId": { + "title": "Endpoint ID", + "description": "ID of the SAP endpoint the writeback request should be sent to.", + "type": "string", + "maxLength": 255 + }, + "requestId": { + "title": "Request ID", + "description": "Unique request ID generated by the CDF writeback API.", + "type": "string", + "maxLength": 255 + }, + "request": { + "$ref": "#/components/schemas/List_RequestItem_" + }, + "status": { + "title": "status", + "type": "string", + "description": "Status of a writeback request", + "enum": [ + "pending", + "in_progress", + "done", + "failed" + ] + }, + "createdTime": { + "$ref": "#/components/schemas/EpochTimestamp" + }, + "lastUpdatedTime": { + "$ref": "#/components/schemas/EpochTimestamp" } }, "required": [ - "set" + "endpointId", + "requestId", + "request", + "status", + "lastUpdatedTime", + "createdTime" ], - "title": "UpdateItem_AuthCertificate", - "type": "object", - "description": "Set a new authentication certificate." + "title": "Request", + "type": "object" }, - "UpdateItem_CACertificate_": { + "RequestMinimal": { "additionalProperties": false, "properties": { - "set": { - "$ref": "#/components/schemas/CACertificate" + "requestId": { + "title": "Request ID", + "description": "Unique request ID generated by the CDF writeback API.", + "type": "string", + "maxLength": 255 + }, + "request": { + "$ref": "#/components/schemas/List_RequestItemMinimal_" + }, + "status": { + "title": "status", + "type": "string", + "description": "Status of the writeback request", + "enum": [ + "pending", + "in_progress", + "done", + "failed" + ] + }, + "createdTime": { + "$ref": "#/components/schemas/EpochTimestamp" + }, + "errorMessage": { + "type": "string", + "description": "Writeback request error message. This field only contains data when the writeback request status is set to `failed`" + }, + "lastUpdatedTime": { + "$ref": "#/components/schemas/EpochTimestamp" } }, "required": [ - "set" + "requestId", + "request", + "status", + "lastUpdatedTime", + "createdTime" ], - "title": "UpdateItem_CACertificate", - "type": "object", - "description": "Set a new certificate authority." + "title": "Request", + "type": "object" }, - "UpdateItem_JobTargetStatus_": { + "RequestFull": { "additionalProperties": false, + "type": "object", "properties": { - "set": { - "$ref": "#/components/schemas/JobTargetStatus" + "requestId": { + "title": "Request ID", + "description": "Unique request ID generated by the CDF writeback API.", + "type": "string", + "maxLength": 255 + }, + "request": { + "$ref": "#/components/schemas/List_RequestItemFull_" + }, + "status": { + "title": "status", + "type": "string", + "description": "Writeback request status", + "enum": [ + "pending", + "in_progress", + "done", + "failed" + ] + }, + "createdTime": { + "$ref": "#/components/schemas/EpochTimestamp" + }, + "lastUpdatedTime": { + "$ref": "#/components/schemas/EpochTimestamp" + }, + "errorMessage": { + "title": "errorMessage", + "type": "string", + "description": "Writeback request error message. This field only contains data when the request status is set to `failed`" } }, "required": [ - "set" + "endpointId", + "requestId", + "request", + "status", + "lastUpdatedTime", + "createdTime" ], - "title": "UpdateItem_JobTargetStatus", - "type": "object", - "description": "Set a new job target status." + "title": "Request Full" }, - "UpdateItem_CustomMapping_": { + "CreateRequestResponse": { "additionalProperties": false, + "type": "object", "properties": { - "set": { - "$ref": "#/components/schemas/CustomMapping" + "requestId": { + "title": "Request ID", + "description": "Unique request ID generated by the CDF writeback API.", + "type": "string", + "maxLength": 255 + }, + "request": { + "$ref": "#/components/schemas/List_CreateRequestItemResponse_" + }, + "status": { + "title": "status", + "type": "string", + "description": "Writeback request status", + "enum": [ + "pending", + "in_progress", + "done", + "failed" + ] + }, + "createdTime": { + "$ref": "#/components/schemas/EpochTimestamp" + }, + "lastUpdatedTime": { + "$ref": "#/components/schemas/EpochTimestamp" } }, "required": [ - "set" + "endpointId", + "requestId", + "request", + "status", + "lastUpdatedTime", + "createdTime" ], - "title": "UpdateItem_CustomMapping", - "type": "object", - "description": "Set a new mapping value." + "title": "Request Full" }, - "UpdateItem_RestInterval_": { + "RequestItem": { "additionalProperties": false, "properties": { - "set": { - "$ref": "#/components/schemas/RestInterval" + "key": { + "title": "key", + "description": "External object key related to this request", + "type": "string", + "maxLength": 255 + }, + "payload": { + "title": "payload", + "description": "Payload to send to the SAP endpoint", + "type": "object" } }, "required": [ - "set" + "payload" ], - "title": "UpdateItem_RestInterval", - "type": "object", - "description": "Set a new interval to execute the query on." + "title": "RequestItem" }, - "UpdateItem_SessionCredentials_": { + "CreateRequestItemResponse": { "additionalProperties": false, "properties": { - "set": { - "$ref": "#/components/schemas/SessionCredentials" + "payload": { + "title": "payload", + "description": "Payload to send to the SAP endpoint", + "type": "object" } }, "required": [ - "set" + "payload" ], - "title": "UpdateItem_SessionCredentials", - "type": "object", - "description": "Set a new set of session credentials for writing to CDF." + "title": "Create RequestItem Response" }, - "UpdateItem_Host_": { + "RequestItemFull": { "additionalProperties": false, "properties": { - "set": { - "title": "Set", + "key": { + "title": "key", + "description": "External object key related to this request", "type": "string", - "maxLength": 200 + "maxLength": 255 + }, + "payload": { + "title": "payload", + "description": "Payload to send to the SAP endpoint", + "type": "object" + }, + "sapObjectId": { + "title": "sapObjectId", + "description": "Object key of the created records in the SAP destination.", + "type": "string", + "maxLength": 255 } }, "required": [ - "set" + "payload" ], - "title": "UpdateItem_Host", - "type": "object", - "description": "Set a new host or IP address." + "title": "Instance", + "type": "object" }, - "UpdateItem_DestinationId_": { + "RequestItemMinimal": { "additionalProperties": false, "properties": { - "set": { - "title": "Set", + "key": { + "title": "key", + "description": "External object key related to this request", + "type": "string", + "maxLength": 255 + }, + "sapObjectId": { + "title": "sapObjectId", + "description": "Object key of the created records in the SAP destination.", "type": "string", "maxLength": 255 } }, - "required": [ - "set" - ], - "title": "UpdateItem_DestinationId", - "type": "object", - "description": "Set a new destination this job should write to." + "title": "Request Item Minimal", + "type": "object" }, - "UpdateItem_Port_": { + "List_RequestItem_": { + "items": { + "$ref": "#/components/schemas/RequestItem" + }, + "title": "List RequestItem", + "type": "array", + "maxItems": 1000, + "minItems": 0 + }, + "List_CreateRequestItemResponse_": { + "items": { + "$ref": "#/components/schemas/CreateRequestItemResponse" + }, + "title": "List RequestItem", + "type": "array", + "maxItems": 1000, + "minItems": 0 + }, + "List_RequestItemMinimal_": { + "items": { + "$ref": "#/components/schemas/RequestItemMinimal" + }, + "title": "List RequestItem Minimal", + "type": "array", + "maxItems": 1000, + "minItems": 0 + }, + "List_RequestItemFull_": { + "additionalProperties": false, + "items": { + "$ref": "#/components/schemas/RequestItemFull" + }, + "title": "List RequestItem Full", + "type": "array", + "maxItems": 1000, + "minItems": 0 + }, + "List_CreateRequestItem_": { + "additionalProperties": false, + "items": { + "$ref": "#/components/schemas/CreateRequestItem" + }, + "title": "List CreateRequestItem", + "type": "array", + "maxItems": 1000, + "minItems": 0 + }, + "CreateInstance": { "additionalProperties": false, "properties": { - "set": { - "title": "Set", + "externalId": { + "title": "External ID", + "$ref": "#/components/schemas/CogniteExternalId" + }, + "gatewayUrl": { + "title": "gatewayUrl", + "type": "string", + "description": "SAP NetWeaver Gateway URL" + }, + "client": { + "title": "client", "type": "integer", - "minimum": 1, - "maximum": 65535 + "description": "SAP client number" + }, + "username": { + "title": "username", + "type": "string", + "description": "SAP username to use when connecting to the SAP NetWeaver Gateway URL" + }, + "password": { + "title": "password", + "type": "string", + "description": "SAP password to use when connecting to the SAP NetWeaver Gateway URL" } }, "required": [ - "set" + "externalId", + "gatewayUrl", + "client", + "username", + "password" ], - "title": "UpdateItem_Port", - "type": "object", - "description": "Set a new port this source should connect to." + "title": "CreateInstance", + "type": "object" }, - "UpdateItem_RestScheme_": { + "CreateEndpoint": { "additionalProperties": false, "properties": { - "set": { - "title": "Set", + "externalId": { + "$ref": "#/components/schemas/CogniteExternalId" + }, + "endpointType": { + "title": "endpointType", "type": "string", + "description": "SAP OData endpoint", "enum": [ - "http", - "https" + "notification", + "attachment" ] + }, + "instanceId": { + "title": "Instance ID", + "description": "External ID of the SAP instance the endpoint should connect to.", + "type": "string", + "maxLength": 255 + }, + "mappingId": { + "title": "SchemaMapping ID", + "description": "External ID of the schema mapping this endpoint should use to transform the writeback request.", + "type": "string", + "maxLength": 255 } }, "required": [ - "set" + "externalId", + "endpointType", + "instanceId" ], - "title": "UpdateItem_RestScheme", - "type": "object", - "description": "Set a new scheme for this source to use" + "title": "Instance", + "type": "object" }, - "UpdateItem_DatasetId_": { + "CreateSchemaMapping": { "additionalProperties": false, "properties": { - "set": { - "title": "Set", - "type": "integer", - "minimum": 1, - "maximum": 9007199254740991, - "format": "int64" + "externalId": { + "$ref": "#/components/schemas/CogniteExternalId" + }, + "expression": { + "type": "string", + "description": "Custom transform expression written in the Cognite mapping language.", + "maxLength": 2000 } }, "required": [ - "set" + "externalId", + "expression" ], - "title": "UpdateItem_Port", - "type": "object", - "description": "Set a new dataset ID." + "title": "Create SchemaMapping", + "type": "object" }, - "UpdateItem_SourceId_": { + "CreateRequest": { "additionalProperties": false, "properties": { - "set": { - "title": "Set", + "endpointId": { + "title": "Endpoint ID", + "description": "External ID of the SAP endpoint the writeback request should be sent to.", "type": "string", "maxLength": 255 + }, + "request": { + "$ref": "#/components/schemas/List_CreateRequestItem_" } }, "required": [ - "set" + "endpointId", + "request" ], - "title": "UpdateItem_SourceId", - "type": "object", - "description": "Set a new source this job should write to." + "title": "CreateRequest", + "type": "object" }, - "UpdateItem_Username_": { + "CreateRequestItem": { "additionalProperties": false, "properties": { - "set": { - "title": "Set", + "key": { + "title": "key", + "description": "External object key related to this request.", "type": "string", - "maxLength": 200 + "maxLength": 255 + }, + "fileId": { + "title": "fileId", + "description": "CDF File external Id. Only use when the SAP endpoint type is 'attachment'", + "type": "string", + "maxLength": 255 + }, + "payload": { + "title": "payload", + "description": "Payload to send to the SAP endpoint", + "type": "object" } }, "required": [ - "set" + "payload" ], - "title": "UpdateItem_Username", - "type": "object", - "description": "Set a new username used for authentication." + "title": "Instance", + "type": "object" }, - "UpdateItem_Password_": { + "Items_Instance_": { "additionalProperties": false, "properties": { - "set": { - "title": "Set", - "type": "string", - "maxLength": 200 + "items": { + "items": { + "$ref": "#/components/schemas/Instance" + }, + "title": "Items", + "type": "array", + "maxItems": 100, + "minItems": 0 } }, "required": [ - "set" + "items" ], - "title": "UpdateItem_Password", - "type": "object", - "description": "Set a new password used for authentication." + "title": "InstanceList", + "type": "object" }, - "JobUpdateItem": { + "Items_Endpoint_": { "additionalProperties": false, "properties": { - "externalId": { - "title": "External ID", - "$ref": "#/components/schemas/CogniteExternalId" - }, - "update": { - "$ref": "#/components/schemas/JobUpdate" + "items": { + "items": { + "$ref": "#/components/schemas/Endpoint" + }, + "title": "Items", + "type": "array", + "maxItems": 100, + "minItems": 0 } }, "required": [ - "externalId", - "update" + "items" ], - "title": "UpdateJob", + "title": "InstanceList", "type": "object" }, - "UpdateMqttV3Source": { + "Items_SchemaMapping_": { "additionalProperties": false, "properties": { - "host": { - "$ref": "#/components/schemas/UpdateItem_Host_" - }, - "port": { - "anyOf": [ - { - "$ref": "#/components/schemas/UpdateItem_Port_" - }, - { - "$ref": "#/components/schemas/UpdateSetNull" - } - ], - "title": "Port", - "description": "Set or remove the port on the MQTT broker." - }, - "username": { - "anyOf": [ - { - "$ref": "#/components/schemas/UpdateItem_Username_" - }, - { - "$ref": "#/components/schemas/UpdateSetNull" - } - ], - "title": "Username", - "description": "Set or remove the username used for authentication." - }, - "password": { - "anyOf": [ - { - "$ref": "#/components/schemas/UpdateItem_Password_" - }, - { - "$ref": "#/components/schemas/UpdateSetNull" - } - ], - "title": "Password", - "description": "Set or remove the password used for authentication." - }, - "useTls": { - "additionalProperties": false, - "properties": { - "set": { - "title": "Set", - "type": "boolean" - } + "items": { + "items": { + "$ref": "#/components/schemas/SchemaMapping" }, - "required": [ - "set" - ], - "type": "object", - "description": "Enable or disable TLS to the MQTT broker." - }, - "caCertificate": { - "anyOf": [ - { - "$ref": "#/components/schemas/UpdateItem_CACertificate_" - }, - { - "$ref": "#/components/schemas/UpdateSetNull" - } - ] - }, - "authCertificate": { - "anyOf": [ - { - "$ref": "#/components/schemas/UpdateItem_AuthCertificate_" - }, - { - "$ref": "#/components/schemas/UpdateSetNull" - } - ] + "title": "Items", + "type": "array", + "maxItems": 100, + "minItems": 0 } }, - "title": "UpdateMqttV3Source", + "required": [ + "items" + ], + "title": "InstanceList", "type": "object" }, - "UpdateMqttV3SourceItem": { + "Items_Request_": { "additionalProperties": false, "properties": { - "type": { - "enum": [ - "mqtt3" - ], - "title": "Type", - "type": "string", - "description": "Source type." - }, - "externalId": { - "$ref": "#/components/schemas/CogniteExternalId" - }, - "update": { - "$ref": "#/components/schemas/UpdateMqttV3Source" + "items": { + "items": { + "$ref": "#/components/schemas/Request" + }, + "title": "Items", + "type": "array", + "maxItems": 100, + "minItems": 0 } }, "required": [ - "type", - "externalId", - "update" + "items" ], - "title": "UpdateMqttV3SourceItem", + "title": "InstanceList", "type": "object" }, - "UpdateMqttV5Source": { + "Items_RequestMinimal_": { "additionalProperties": false, "properties": { - "host": { - "$ref": "#/components/schemas/UpdateItem_Host_" - }, - "port": { - "anyOf": [ - { - "$ref": "#/components/schemas/UpdateItem_Port_" - }, - { - "$ref": "#/components/schemas/UpdateSetNull" - } - ], - "title": "Port", - "description": "Set or remove the port on the MQTT broker." - }, - "username": { - "anyOf": [ - { - "$ref": "#/components/schemas/UpdateItem_Username_" - }, - { - "$ref": "#/components/schemas/UpdateSetNull" - } - ], - "title": "Username", - "description": "Set or remove the username used for authentication." - }, - "password": { - "anyOf": [ - { - "$ref": "#/components/schemas/UpdateItem_Password_" - }, - { - "$ref": "#/components/schemas/UpdateSetNull" - } - ], - "title": "Password", - "description": "Set or remove the password used for authentication." - }, - "useTls": { - "additionalProperties": false, - "properties": { - "set": { - "title": "Set", - "type": "boolean" - } + "items": { + "items": { + "$ref": "#/components/schemas/RequestMinimal" }, - "required": [ - "set" - ], - "type": "object", - "description": "Enable or disable TLS to the MQTT broker." - }, - "caCertificate": { - "anyOf": [ - { - "$ref": "#/components/schemas/UpdateItem_CACertificate_" - }, - { - "$ref": "#/components/schemas/UpdateSetNull" - } - ] - }, - "authCertificate": { - "anyOf": [ - { - "$ref": "#/components/schemas/UpdateItem_AuthCertificate_" - }, - { - "$ref": "#/components/schemas/UpdateSetNull" - } - ] + "title": "Items", + "type": "array", + "maxItems": 100, + "minItems": 0 + } + }, + "required": [ + "items" + ], + "title": "InstanceList", + "type": "object" + }, + "Items_RequestFull_": { + "additionalProperties": false, + "properties": { + "items": { + "items": { + "$ref": "#/components/schemas/RequestFull" + }, + "title": "Items", + "type": "array", + "maxItems": 100, + "minItems": 0 } }, - "title": "UpdateMqttV5Source", + "required": [ + "items" + ], + "title": "InstanceList", "type": "object" }, - "UpdateMqttV5SourceItem": { + "Items_CreateRequest_": { "additionalProperties": false, "properties": { - "type": { - "enum": [ - "mqtt5" - ], - "title": "Type", - "type": "string", - "description": "Source type." - }, - "externalId": { - "$ref": "#/components/schemas/CogniteExternalId" - }, - "update": { - "$ref": "#/components/schemas/UpdateMqttV5Source" + "items": { + "items": { + "$ref": "#/components/schemas/CreateRequest" + }, + "title": "Items", + "type": "array", + "maxItems": 100, + "minItems": 0 } }, "required": [ - "type", - "externalId", - "update" + "items" ], - "title": "UpdateMqttV5SourceItem", + "title": "InstanceList", "type": "object" }, - "UpdateRestSource": { + "Items_CreateRequestResponse_": { "additionalProperties": false, "properties": { - "host": { - "$ref": "#/components/schemas/UpdateItem_Host_" - }, - "interval": { - "$ref": "#/components/schemas/UpdateItem_RestInterval_" - }, - "scheme": { - "$ref": "#/components/schemas/UpdateItem_RestScheme_" - }, - "port": { - "$ref": "#/components/schemas/UpdateItem_Port_" + "items": { + "items": { + "$ref": "#/components/schemas/CreateRequestResponse" + }, + "title": "Items", + "type": "array", + "maxItems": 100, + "minItems": 1 } }, - "title": "UpdateRestSource", + "required": [ + "items" + ], + "title": "InstanceList", "type": "object" }, - "UpdateRestSourceItem": { + "Items_CreateInstance_": { "additionalProperties": false, "properties": { - "type": { - "enum": [ - "rest" - ], - "title": "Type", - "type": "string", - "description": "Source type." - }, - "externalId": { - "$ref": "#/components/schemas/CogniteExternalId" - }, - "update": { - "$ref": "#/components/schemas/UpdateRestSource" + "items": { + "items": { + "$ref": "#/components/schemas/CreateInstance" + }, + "title": "Items", + "type": "array", + "minLength": 1, + "maxLength": 100 } }, "required": [ - "type", - "externalId", - "update" + "items" ], - "title": "UpdateRestSourceItem", + "title": "CreateInstancelist", "type": "object" }, - "UpdateSetNull": { + "Items_CreateEndpoint_": { "additionalProperties": false, "properties": { - "setNull": { - "title": "SetNull", - "type": "boolean", - "description": "Clear this value" + "items": { + "items": { + "$ref": "#/components/schemas/CreateEndpoint" + }, + "title": "Items", + "type": "array", + "minLength": 1, + "maxLength": 100 } }, "required": [ - "setNull" + "items" ], - "title": "UpdateSetNull", + "title": "CreateEndpoint list", "type": "object" }, - "UpdateMapping": { + "Items_CreateSchemaMapping_": { "additionalProperties": false, "properties": { - "mapping": { - "$ref": "#/components/schemas/UpdateItem_CustomMapping_" - }, - "input": { - "anyOf": [ - { - "$ref": "#/components/schemas/UpdateItem_InputConfig_" - }, - { - "$ref": "#/components/schemas/UpdateSetNull" - } - ], - "description": "Set or remove mapping input. When removed this defaults to json." - }, - "published": { - "additionalProperties": false, - "properties": { - "set": { - "title": "Set", - "type": "boolean" - } + "items": { + "items": { + "$ref": "#/components/schemas/CreateSchemaMapping" }, - "required": [ - "set" - ], - "type": "object", - "description": "Publish or unpublish the mapping." + "title": "Items", + "type": "array", + "minLength": 1, + "maxLength": 100 } }, - "title": "UpdateMapping", + "required": [ + "items" + ], + "title": "CreateSchemaMapping list", "type": "object" }, - "ValueFormat": { + "ItemsWithCursor_Instance_": { "additionalProperties": false, "properties": { - "type": { - "enum": [ - "value" - ], - "title": "Type", - "type": "string", - "description": "Format type." - }, - "preProcessingLayers": { - "$ref": "#/components/schemas/PreProcessingLayers" + "items": { + "items": { + "$ref": "#/components/schemas/Instance" + }, + "title": "Items", + "type": "array", + "maxItems": 100, + "minItems": 0 }, - "prefix": { - "$ref": "#/components/schemas/PrefixConfig" + "nextCursor": { + "type": "string", + "title": "Next cursor", + "description": "Cursor for pagination" } }, "required": [ - "type" + "items" ], - "title": "ValueFormat", - "type": "object", - "description": "Assume the source data is on the form `some string` or `123.456`, and convert these into CDF datapoints, using prefix config to determine the timeseries external ID, and current time as timestamp.\nIf no prefix config is set, use the topic name as timeseries ID." - }, - "PreProcessingLayers": { - "items": { - "discriminator": { - "mapping": { - "encoding": "#/components/schemas/EncodingLayer", - "gzip": "#/components/schemas/GzipLayer" - }, - "propertyName": "type" - }, - "oneOf": [ - { - "$ref": "#/components/schemas/EncodingLayer" - }, - { - "$ref": "#/components/schemas/GzipLayer" - } - ] - }, - "type": "array", - "title": "PreProcessingLayers", - "description": "List of pre processing layers applied to the payload before it is sent to the transformation. The layers are applied in order." + "title": "InstanceListWithCursor", + "type": "object" }, - "WriteCustomFormat": { + "ItemsWithCursor_Endpoint_": { "additionalProperties": false, "properties": { - "type": { - "enum": [ - "custom" - ], - "title": "Type", - "type": "string", - "description": "Format type." - }, - "preProcessingLayers": { - "$ref": "#/components/schemas/PreProcessingLayers" + "items": { + "items": { + "$ref": "#/components/schemas/Endpoint" + }, + "title": "Items", + "type": "array", + "maxItems": 100, + "minItems": 0 }, - "mappingId": { - "title": "Mapping ID", + "nextCursor": { "type": "string", - "description": "ID of the mapping this format should be tied to.", - "maxLength": 255 + "title": "Next cursor", + "description": "Cursor for pagination" } }, "required": [ - "type", - "mappingId" + "items" ], - "title": "WriteCustomFormat", - "type": "object", - "description": "Format the source data using a custom mapping." + "title": "EndpointListWithCursor", + "type": "object" }, - "ValidationErrorContent": { - "type": "object", - "required": [ - "code", - "message" - ], - "description": "Cognite API error.", + "ItemsWithCursor_SchemaMapping_": { + "additionalProperties": false, "properties": { - "code": { - "type": "integer", - "description": "HTTP status code.", - "format": "int32", - "example": 422 + "items": { + "items": { + "$ref": "#/components/schemas/SchemaMapping" + }, + "title": "Items", + "type": "array", + "maxItems": 100, + "minItems": 0 }, - "message": { + "nextCursor": { "type": "string", - "description": "Error message.", - "example": "Extra inputs are not permitted: tpye" + "title": "Next cursor", + "description": "Cursor for pagination" } - } + }, + "required": [ + "items" + ], + "title": "MappingList", + "type": "object" }, - "CustomMapping": { - "type": "object", + "ItemsWithCursor_ListRequestMinimal_": { + "additionalProperties": false, "properties": { - "expression": { + "items": { + "items": { + "$ref": "#/components/schemas/RequestMinimal" + }, + "title": "Items", + "type": "array", + "maxItems": 100, + "minItems": 0 + }, + "nextCursor": { "type": "string", - "description": "Custom transform expression written in the Kuiper transformation language.", - "maxLength": 2000 + "title": "Next cursor", + "description": "Cursor for pagination" } }, "required": [ - "expression" - ] + "items" + ], + "title": "MappingList", + "type": "object" }, - "KafkaBroker": { - "type": "object", + "WritebackRequestId": { + "description": "Unique request ID generated by the CDF writeback API.", + "type": "string", + "maxLength": 255 + }, + "RequestIdWrapper": { "additionalProperties": false, "properties": { - "host": { - "title": "Host", - "type": "string", - "description": "Host name or IP address of the bootstrap broker." - }, - "port": { - "title": "Port", - "type": "integer", - "description": "Port on the bootstrap broker to connect to.", - "minimum": 1, - "maximum": 65535 + "requestId": { + "$ref": "#/components/schemas/WritebackRequestId" } }, "required": [ - "host", - "port" - ] - }, - "KafkaBrokerList": { - "type": "array", - "items": { - "$ref": "#/components/schemas/KafkaBroker" - }, - "description": "List of redundant kafka brokers to connect to.", - "minItems": 1, - "maxItems": 8 + "externalId" + ], + "title": "WritebackExternalIdWrapper", + "type": "object" }, - "KafkaSource": { - "type": "object", + "ItemsWithIgnoreUnknownIds_RequestId_": { "additionalProperties": false, "properties": { - "type": { - "enum": [ - "kafka" - ], - "title": "Type", - "type": "string", - "description": "Source type." - }, - "externalId": { - "$ref": "#/components/schemas/CogniteExternalId" - }, - "bootstrapBrokers": { - "$ref": "#/components/schemas/KafkaBrokerList" - }, - "username": { - "type": "string", - "title": "Username", - "description": "Username used for authenticating with the broker.", - "maxLength": 200 - }, - "createdTime": { - "$ref": "#/components/schemas/EpochTimestamp" - }, - "lastUpdatedTime": { - "$ref": "#/components/schemas/EpochTimestamp" - }, - "caCertificate": { - "$ref": "#/components/schemas/CertificateDetails" - }, - "authCertificate": { - "$ref": "#/components/schemas/CertificateDetails" + "items": { + "items": { + "$ref": "#/components/schemas/RequestIdWrapper" + }, + "title": "Items", + "type": "array", + "maxItems": 100, + "minItems": 1 }, - "useTls": { + "ignoreUnknownIds": { "type": "boolean", - "title": "UseTLS", - "description": "Indicates whether TLS will be used for connection to broker." + "title": "IgnoreUnknownIds", + "description": "Ignore IDs and external IDs that are not found" } }, "required": [ - "bootstrapBrokers", - "externalId", - "type" - ] + "items" + ], + "title": "ItemsWithIgnoreUnknownIds_RequestId", + "type": "object" }, - "CreateKafkaSource": { + "ConnectionCheckContent": { "type": "object", - "additionalProperties": false, + "required": [ + "status", + "error_message" + ], + "description": "Cognite API error.", "properties": { - "type": { - "enum": [ - "kafka" - ], - "title": "Type", - "type": "string", - "description": "Source type." - }, - "externalId": { - "$ref": "#/components/schemas/CogniteExternalId" - }, - "bootstrapBrokers": { - "$ref": "#/components/schemas/KafkaBrokerList" - }, - "username": { + "status": { "type": "string", - "title": "Username", - "description": "Username used for authenticating with the broker.", - "maxLength": 200 + "title": "status", + "description": "Connectivity status between the writeback API and the SAP destination endpoint. `success` means that the CDF writeback API has successfully connected to the SAP endpoint destination.", + "default": "success" }, - "password": { + "detail": { "type": "string", - "title": "Password", - "description": "Password used for authenticating with the broker.", - "maxLength": 200 - }, - "useTls": { - "type": "boolean", - "title": "UseTLS", - "description": "If true, use TLS when connecting to the broker" - }, - "caCertificate": { - "$ref": "#/components/schemas/CACertificate" - }, - "authCertificate": { - "$ref": "#/components/schemas/AuthCertificate" + "description": "Description of the connection check" } - }, - "required": [ - "bootstrapBrokers", - "externalId", - "type" - ] + } }, - "UpdateItem_KafkaBrokers_": { + "WritebackExternalIdWrapper": { "additionalProperties": false, "properties": { - "set": { - "$ref": "#/components/schemas/KafkaBrokerList" + "externalId": { + "$ref": "#/components/schemas/CogniteExternalId" } }, "required": [ - "set" + "externalId" ], - "title": "UpdateItem_KafkaBrokers", - "type": "object", - "description": "Set a new list of redundant kafka brokers." + "title": "WritebackExternalIdWrapper", + "type": "object" }, - "UpdateItem_Partitions_": { + "WritebackItemsWithIgnoreUnknownIds_ExternalId_": { "additionalProperties": false, "properties": { - "set": { - "type": "integer", - "title": "Partitions", - "description": "The number of partiitons in the broker", - "minimum": 1, - "maximum": 10, - "default": 1 + "items": { + "items": { + "$ref": "#/components/schemas/WritebackExternalIdWrapper" + }, + "title": "Items", + "type": "array", + "maxItems": 100, + "minItems": 1 + }, + "ignoreUnknownIds": { + "type": "boolean", + "title": "IgnoreUnknownIds", + "description": "Ignore IDs and external IDs that are not found" } }, - "description": "Set a new number of kafka partitions.", - "type": "object", - "title": "UpdateItem_Partitions", "required": [ - "set" - ] + "items" + ], + "title": "ItemsWithIgnoreUnknownIds_ExternalId", + "type": "object" }, - "UpdateKafkaSource": { + "WritebackItemsWithIgnoreUnknownIdsAndForce_ExternalId_": { "additionalProperties": false, "properties": { - "bootstrapBrokers": { - "$ref": "#/components/schemas/UpdateItem_KafkaBrokers_" - }, - "username": { - "anyOf": [ - { - "$ref": "#/components/schemas/UpdateItem_Username_" - }, - { - "$ref": "#/components/schemas/UpdateSetNull" - } - ], - "title": "Username", - "description": "Set or remove the username used for authentication." - }, - "password": { - "anyOf": [ - { - "$ref": "#/components/schemas/UpdateItem_Password_" - }, - { - "$ref": "#/components/schemas/UpdateSetNull" - } - ], - "title": "Password", - "description": "Set or remove the password used for authentication." - }, - "useTls": { - "additionalProperties": false, - "properties": { - "set": { - "title": "Set", - "type": "boolean" - } + "items": { + "items": { + "$ref": "#/components/schemas/WritebackExternalIdWrapper" }, - "required": [ - "set" - ], - "type": "object", - "description": "Enable or disable TLS to the Kafka broker." - }, - "caCertificate": { - "anyOf": [ - { - "$ref": "#/components/schemas/UpdateItem_CACertificate_" - }, - { - "$ref": "#/components/schemas/UpdateSetNull" - } - ] - }, - "authCertificate": { - "anyOf": [ - { - "$ref": "#/components/schemas/UpdateItem_AuthCertificate_" - }, - { - "$ref": "#/components/schemas/UpdateSetNull" - } - ] - } - } - }, - "UpdateKafkaSourceItem": { - "additionalProperties": false, - "properties": { - "type": { - "enum": [ - "kafka" - ], - "title": "Type", - "type": "string", - "description": "Source type." + "title": "Items", + "type": "array", + "maxItems": 100, + "minItems": 1 }, - "externalId": { - "$ref": "#/components/schemas/CogniteExternalId" + "ignoreUnknownIds": { + "type": "boolean", + "title": "IgnoreUnknownIds", + "description": "Ignore IDs and external IDs that are not found." }, - "update": { - "$ref": "#/components/schemas/UpdateKafkaSource" + "force": { + "type": "boolean", + "title": "Force", + "description": "Delete any jobs associated with each item." } }, "required": [ - "type", - "externalId", - "update" + "items" ], - "title": "UpdateKafkaSourceItem", + "title": "ItemsWithIgnoreUnknownIdsAndForce_ExternalId", "type": "object" }, + "WritebackValidationErrorContent": { + "type": "object", + "required": [ + "code", + "message" + ], + "description": "Cognite API error.", + "properties": { + "code": { + "type": "integer", + "description": "HTTP status code.", + "format": "int32", + "example": 422 + }, + "message": { + "type": "string", + "description": "Error message.", + "example": "Extra inputs are not permitted: type" + } + } + }, "APIError": { "properties": { "message": { @@ -60321,221 +69612,978 @@ "type": "string", "title": "Error Type" } - }, - "type": "object", - "required": [ - "loc", - "msg", - "type" - ], - "title": "ValidationError" + }, + "type": "object", + "required": [ + "loc", + "msg", + "type" + ], + "title": "ValidationError" + }, + "ViewList_UnitSystem_": { + "properties": { + "items": { + "items": { + "$ref": "#/components/schemas/UnitSystem" + }, + "type": "array", + "title": "Items" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "items" + ], + "title": "ViewList[UnitSystem]" + }, + "ViewList_Unit_": { + "properties": { + "items": { + "items": { + "$ref": "#/components/schemas/Unit" + }, + "type": "array", + "title": "Items" + } + }, + "additionalProperties": false, + "type": "object", + "required": [ + "items" + ], + "title": "ViewList[Unit]" + }, + "CreateEntityRequest": { + "description": "", + "type": "object", + "required": [ + "externalId" + ], + "properties": { + "externalId": { + "$ref": "#/components/schemas/CogniteExternalId" + }, + "visibility": { + "$ref": "#/components/schemas/Visibility" + }, + "data": { + "type": "object" + } + } + }, + "CreateEntityRequestList": { + "description": "", + "type": "object", + "properties": { + "items": { + "type": "array", + "minItems": 1, + "maxItems": 1000, + "items": { + "$ref": "#/components/schemas/Entity" + } + } + } + }, + "CreateEntityResponseList": { + "description": "", + "type": "object", + "properties": { + "items": { + "type": "array", + "minItems": 1, + "maxItems": 1000, + "items": { + "$ref": "#/components/schemas/EntityResponse" + } + } + } + }, + "EntitiesLookupById": { + "description": "Schema for fetching the list of entities byIds using externalIds", + "type": "object", + "required": [ + "items" + ], + "properties": { + "items": { + "type": "array", + "minItems": 1, + "maxItems": 1000, + "items": { + "type": "object", + "required": [ + "externalId" + ], + "properties": { + "externalId": { + "$ref": "#/components/schemas/CogniteExternalId" + } + } + } + } + } + }, + "EntityResponse": { + "allOf": [ + { + "$ref": "#/components/schemas/CreateEntityRequest" + }, + { + "type": "object", + "properties": { + "createdTime": { + "$ref": "#/components/schemas/EpochTimestamp" + }, + "lastUpdatedTime": { + "$ref": "#/components/schemas/EpochTimestamp" + } + } + } + ] + }, + "EntityListFilter": { + "allOf": [ + { + "type": "object", + "properties": { + "visibility": { + "$ref": "#/components/schemas/Visibility" + }, + "isOwned": { + "type": "boolean", + "description": "only match entities the client owns" + } + } + } + ] + }, + "EntityListRequest": { + "type": "object", + "properties": { + "filter": { + "$ref": "#/components/schemas/EntityListFilter" + }, + "limit": { + "description": "Maximum number of items that the client want to get back.", + "type": "integer", + "format": "int32", + "minimum": 1, + "maximum": 1000, + "default": 100 + } + } + }, + "EntityResponseList": { + "description": "", + "type": "object", + "properties": { + "items": { + "type": "array", + "minItems": 0, + "maxItems": 10000, + "items": { + "$ref": "#/components/schemas/EntityResponse" + } + } + } + }, + "EntityResponseByIds": { + "description": "", + "type": "object", + "properties": { + "items": { + "type": "array", + "minItems": 0, + "maxItems": 1000, + "items": { + "$ref": "#/components/schemas/EntityResponse" + } + } + } + }, + "Entity": { + "type": "object", + "required": [ + "externalId" + ], + "properties": { + "externalId": { + "$ref": "#/components/schemas/CogniteExternalId" + }, + "visibility": { + "$ref": "#/components/schemas/Visibility" + }, + "data": { + "type": "object" + } + } + }, + "Visibility": { + "type": "string", + "enum": [ + "PUBLIC", + "PRIVATE" + ] + }, + "LocationFilterRead": { + "type": "object", + "required": [ + "id", + "createdTime", + "lastUpdatedTime" + ], + "allOf": [ + { + "$ref": "#/components/schemas/LocationFilterWrite" + } + ], + "properties": { + "id": { + "$ref": "#/components/schemas/CogniteInternalId" + }, + "createdTime": { + "$ref": "#/components/schemas/EpochTimestamp" + }, + "lastUpdatedTime": { + "$ref": "#/components/schemas/EpochTimestamp" + } + } + }, + "LocationFilterWrite": { + "type": "object", + "required": [ + "externalId", + "name" + ], + "properties": { + "externalId": { + "$ref": "#/components/schemas/CogniteExternalId" + }, + "name": { + "type": "string", + "description": "The name of the location filter", + "maxLength": 255 + }, + "parentId": { + "allOf": [ + { + "$ref": "#/components/schemas/CogniteInternalId" + } + ], + "description": "The ID of the parent location filter" + }, + "description": { + "type": "string", + "description": "The description of the location filter", + "maxLength": 255 + }, + "dataModels": { + "type": "array", + "description": "The data models in the location filter", + "items": { + "$ref": "#/components/schemas/LocationFilterDataModel" + } + }, + "instanceSpaces": { + "type": "array", + "description": "The list of spaces that instances are in", + "items": { + "type": "string" + } + }, + "scene": { + "$ref": "#/components/schemas/LocationFilterScene" + }, + "assetCentric": { + "$ref": "#/components/schemas/LocationFilterAssetCentric" + }, + "views": { + "type": "array", + "description": "The list of view mappings", + "items": { + "$ref": "#/components/schemas/LocationFilterView" + } + } + } + }, + "LocationFilterView": { + "type": "object", + "description": "The view mappings for the location filter", + "required": [ + "externalId", + "space", + "version", + "representsEntity" + ], + "properties": { + "externalId": { + "type": "string", + "description": "The external ID of the view" + }, + "space": { + "type": "string", + "description": "The space that the view belongs to" + }, + "version": { + "type": "string", + "description": "The version of the view" + }, + "representsEntity": { + "type": "string", + "enum": [ + "MAINTENANCE_ORDER", + "OPERATION", + "NOTIFICATION", + "ASSET" + ] + } + } + }, + "LocationFilterAssetCentric": { + "type": "object", + "description": "The filter definition for asset centric resource types", + "allOf": [ + { + "$ref": "#/components/schemas/LocationFilterAssetCentricBaseFilter" + } + ], + "properties": { + "assets": { + "$ref": "#/components/schemas/LocationFilterAssetCentricBaseFilter" + }, + "events": { + "$ref": "#/components/schemas/LocationFilterAssetCentricBaseFilter" + }, + "files": { + "$ref": "#/components/schemas/LocationFilterAssetCentricBaseFilter" + }, + "timeseries": { + "$ref": "#/components/schemas/LocationFilterAssetCentricBaseFilter" + }, + "sequences": { + "$ref": "#/components/schemas/LocationFilterAssetCentricBaseFilter" + } + } + }, + "LocationFilterAssetCentricBaseFilter": { + "type": "object", + "properties": { + "dataSetIds": { + "type": "array", + "description": "The list of data set IDs", + "items": { + "type": "number" + } + }, + "assetSubtreeIds": { + "type": "array", + "description": "The list of asset subtree IDs", + "items": { + "allOf": [ + { + "$ref": "#/components/schemas/IdEither" + } + ] + } + }, + "externalIdPrefix": { + "type": "string", + "description": "The external ID prefix" + } + } + }, + "LocationFilterDataModel": { + "type": "object", + "required": [ + "externalId", + "space", + "version" + ], + "properties": { + "externalId": { + "type": "string", + "description": "The external ID of the data model" + }, + "space": { + "type": "string", + "description": "The space of the data model" + }, + "version": { + "type": "string", + "description": "The version of the data model" + } + } + }, + "LocationFilterScene": { + "type": "object", + "description": "The scene config for the location filter", + "required": [ + "externalId", + "space", + "version" + ], + "properties": { + "externalId": { + "type": "string", + "description": "The external ID of the scene" + }, + "space": { + "type": "string", + "description": "The space that the scene is in" + } + } + }, + "OrgId": { + "type": "string", + "description": "The ID of an organization", + "minLength": 3, + "maxLength": 64, + "example": "my-org", + "pattern": "^([a-z][a-z0-9-]{1,62}[a-z0-9])$" + }, + "ClusterName": { + "type": "string", + "description": "A CDF cluster name", + "minLength": 1, + "maxLength": 32, + "pattern": "^[a-z0-9-]{1,32}$", + "example": "westeurope-1" + }, + "MigrationStatus": { + "type": "string", + "description": "This attribute will be removed in a future version, and it is recommended to not send it in requests and to ignore it in responses.\nIf it is present, the single valid value is equivalent to the attribute being null or absent.", + "enum": [ + "EXCLUSIVE_LOGIN" + ] + }, + "ExternalGroupId": { + "type": "string", + "description": "The ID of a group managed by the external identity provider", + "minLength": 3, + "maxLength": 64, + "example": "my-external-group" + }, + "NullableExternalGroupId": { + "type": "string", + "description": "The ID of a group managed by the external identity provider.", + "minLength": 3, + "maxLength": 64, + "example": "my-external-group" + }, + "IdentityProvider": { + "description": "Configuration for an external OIDC-compliant IdP.", + "oneOf": [ + { + "$ref": "#/components/schemas/AzureAdIdp" + }, + { + "$ref": "#/components/schemas/Auth0Idp" + }, + { + "$ref": "#/components/schemas/KeycloakIdp" + }, + { + "$ref": "#/components/schemas/SAuthIdp" + } + ] + }, + "IdpBase": { + "type": "object", + "required": [ + "issuer" + ], + "properties": { + "issuer": { + "type": "string", + "format": "url", + "example": "https://login.microsoftonline.com/some-tenant-id/v2.0", + "description": "The issuer for the external IdP." + } + } + }, + "AzureAdIdp": { + "allOf": [ + { + "type": "object", + "description": "Azure AD IdP configuration", + "required": [ + "idpVendor" + ], + "properties": { + "idpVendor": { + "type": "string", + "enum": [ + "AZURE_AD" + ] + }, + "issuer": { + "example": "https://login.microsoftonline.com/some-tenant-id/v2.0", + "description": "The issuer for the external IdP. For Azure AD, it conforms to the example URL and contains the tenant ID." + } + } + }, + { + "$ref": "#/components/schemas/IdpBase" + } + ] + }, + "Auth0Idp": { + "allOf": [ + { + "$ref": "#/components/schemas/IdpBase" + }, + { + "type": "object", + "description": "Auth0 IdP configuration", + "required": [ + "idpVendor", + "clientId", + "clientSecret", + "groupsClaimName" + ], + "properties": { + "idpVendor": { + "type": "string", + "enum": [ + "AUTH0" + ] + }, + "clientId": { + "type": "string", + "description": "The client ID of the Auth0 application" + }, + "clientSecret": { + "type": "string", + "format": "password", + "description": "The client secret of the Auth0 application. It is write-only and cannot be read." + }, + "groupsClaimName": { + "description": "The name of the claim that contains the groups in the token", + "type": "string", + "pattern": "^[a-z0-9][a-z0-9_\\-./:]{0,31}(? K`) and `N = 20` - i.e. `\"partition\": \"11/20\"`- then\nCDF will reply with an empty result list and no cursor in the response. \n\nIn future releases of the resource APIs, Cognite may reject requests if you specify more than 10 partitions.\nWhen Cognite enforces this behavior, the requests will result in a 400 Bad Request status.\n", + "description": "Splits the data set into `N` partitions.\nThe attribute is specified as a \"M/N\" string, where `M` is a natural number in the interval of `[1, N]`.\nYou need to follow the cursors within each partition in order to receive all the data.\n\nTo prevent unexpected problems and maximize read throughput, you should at most use 10 (N <= 10) partitions.\n\nWhen using more than 10 partitions, CDF may reduce the number of partitions silently.\nFor 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\nCDF will change `N` to `N = K = 10` and process the request.\nBut if you specify the `X/N` `partition` value where `X = 11` (`X > K`) and `N = 20` - i.e. `\"partition\": \"11/20\"`- then\nCDF will reply with an empty result list and no cursor in the response.\n\nIn future releases of the resource APIs, Cognite may reject requests if you specify more than 10 partitions.\nWhen Cognite enforces this behavior, the requests will result in a 400 Bad Request status.\n", "schema": { "type": "string", "example": "1/10" @@ -60647,7 +70695,7 @@ }, "ReducedLimit": { "name": "limit", - "description": "Limit the number of results returned. The largest result-set returned by the server will be 1000 items, even if you specify a higher limit.", + "description": "Limit the number of results returned. The largest result-set returned by the server will be 1000 items, even if you specify a higher limit.", "in": "query", "schema": { "type": "integer", @@ -60934,6 +70982,46 @@ "minimum": 1, "maximum": 100 } + }, + "100Limit_": { + "name": "limit", + "description": "Limits the number of results to be returned. The maximum results returned by the server is 100 even if you specify a higher limit.", + "in": "query", + "schema": { + "type": "integer", + "default": 100, + "minimum": 1, + "maximum": 100 + } + }, + "Username": { + "name": "username", + "description": "The name of the username (a.k.a. database) to be managed from the API", + "in": "path", + "required": true, + "schema": { + "$ref": "#/components/schemas/Username" + } + }, + "Writeback100Limit": { + "name": "limit", + "description": "Limits the number of results to be returned. The maximum results returned by the server is 100 even if you specify a higher limit.", + "in": "query", + "schema": { + "type": "integer", + "default": 100, + "minimum": 1, + "maximum": 100 + } + }, + "OrgId": { + "name": "org", + "in": "path", + "description": "ID of an organization", + "required": true, + "schema": { + "$ref": "#/components/schemas/OrgId" + } } }, "responses": { @@ -61137,6 +71225,27 @@ } } }, + "AggregationResponseV2": { + "description": "Aggregated query results", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "aggregates" + ], + "properties": { + "typing": { + "$ref": "#/components/schemas/TypeInformationOuter" + }, + "aggregates": { + "$ref": "#/components/schemas/AggregatesResultDefinition" + } + } + } + } + } + }, "ByIdsResponse": { "description": "List of matching nodes and edges", "content": { @@ -61217,6 +71326,28 @@ } } }, + "InstanceInspectResponse": { + "description": "Instances along with which containers/views they are associated with", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "items" + ], + "properties": { + "items": { + "type": "array", + "description": "List of instance inspection results", + "items": { + "$ref": "#/components/schemas/InstanceInspectResultItem" + } + } + } + } + } + } + }, "SlimNodeAndEdgeCollectionResponse": { "description": "Created or updated nodes and edges", "content": { @@ -61408,6 +71539,28 @@ } } }, + "ContainerInspectResponse": { + "description": "Containers along with the results of the inspection operations", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "items" + ], + "properties": { + "items": { + "type": "array", + "description": "List of container inspection results", + "items": { + "$ref": "#/components/schemas/ContainerInspectResultItem" + } + } + } + } + } + } + }, "SpaceCollectionResponseV3": { "description": "List of spaces", "content": { @@ -61681,6 +71834,107 @@ } } }, + "LogIngestResponse": { + "description": "Empty response in the case of a success.\n", + "content": { + "application/json": { + "schema": { + "type": "object", + "title": "emptyResponse", + "description": "Currently, empty result in the case of a success logs ingestion.\n" + } + } + } + }, + "LogListResponse": { + "description": "List of matching logs.\n", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "items" + ], + "properties": { + "items": { + "type": "array", + "title": "logItems", + "description": "List of logs.\n", + "items": { + "allOf": [ + { + "$ref": "#/components/schemas/Log" + } + ] + } + } + } + } + } + } + }, + "LogAggregationResponse": { + "description": "Aggregated query results.\n", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "aggregates" + ], + "properties": { + "aggregates": { + "allOf": [ + { + "$ref": "#/components/schemas/AggregatesResultDefinitionIla" + } + ] + } + } + } + } + } + }, + "LogSyncResponse": { + "description": "The next chunk of matching the filter logs starting from the cursor in the request.\n", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "items", + "hasNext" + ], + "properties": { + "items": { + "type": "array", + "title": "logItems", + "description": "List of logs.\n", + "items": { + "allOf": [ + { + "$ref": "#/components/schemas/Log" + } + ] + } + }, + "nextCursor": { + "type": "string", + "title": "nextCursor", + "description": "A cursor to use in the next request as a starting point to get the next chunk of logs.\n", + "example": "c29tZSBjdXJzb3I=" + }, + "hasNext": { + "type": "boolean", + "title": "hasNext", + "description": "The attribute indicates if there are more logs to read in the storage or the cursor points to the last item.\n", + "example": true + } + } + } + } + } + }, "EventDataResponse": { "description": "Paged response with list of events", "content": { @@ -61736,7 +71990,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/UploadFileMetadata" + "$ref": "#/components/schemas/DataFileUploadFileMetadata" } } } @@ -61746,7 +72000,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/MultiPartUploadFileMetadata" + "$ref": "#/components/schemas/DataMultiPartUploadFileMetadata" } } } @@ -62143,6 +72397,13 @@ "properties": { "urlName": { "$ref": "#/components/schemas/ProjectUrlName" + }, + "dataModelingStatus": { + "allOf": [ + { + "$ref": "#/components/schemas/DataModelingStatus" + } + ] } } } @@ -62769,6 +73030,48 @@ } } }, + "DocumentSemanticSearchResponse": { + "description": "List of most relevant document passages for a given query. The results are sorted by relevance, and contains metadata such as page numbers.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "items" + ], + "properties": { + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DocumentSemanticSearchItem" + } + } + } + } + } + } + }, + "DocumentStatusResponse": { + "description": "List of documents and their status to signify if they are ready for search.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "items" + ], + "properties": { + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DocumentStatusItem" + } + } + } + } + } + } + }, "DocumentsAggregateResponse": { "description": "The results of an aggregation request. The object returned depends on the aggregate specified.", "content": { @@ -62855,6 +73158,27 @@ } } }, + "DocumentElementsResponse": { + "description": "Parsed textual content for the document", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "elements" + ], + "properties": { + "elements": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DocumentElement" + } + } + } + } + } + } + }, "GeospatialErrorResponse": { "description": "Failed request reponse.", "content": { @@ -63095,6 +73419,16 @@ } } }, + "UserListResponseDto": { + "description": "A list of organization users", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserListResponse" + } + } + } + }, "ValidationError": { "description": "Validation Error", "content": { @@ -63112,6 +73446,294 @@ } } } + }, + "ValidationError_": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "error" + ], + "properties": { + "error": { + "$ref": "#/components/schemas/ValidationErrorContent_" + } + } + } + } + } + }, + "WritebackValidationError": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "error" + ], + "properties": { + "error": { + "$ref": "#/components/schemas/WritebackValidationErrorContent" + } + } + } + } + } + }, + "ConnectionCheck": { + "description": "Connection Check Result", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "$ref": "#/components/schemas/ConnectionCheckContent" + } + } + } + } + } + }, + "LocationFilterResponse": { + "description": "Response with a single location filter.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LocationFilterRead" + } + } + } + }, + "LocationFilterListResponse": { + "description": "Response with an array of location filters", + "content": { + "application/json": { + "schema": { + "properties": { + "items": { + "type": "array", + "description": "The array of location filters", + "items": { + "$ref": "#/components/schemas/LocationFilterRead" + } + } + } + } + } + } + }, + "OrganizationResponseDtoBeta": { + "description": "A successfully created organization", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Organization" + } + } + } + }, + "OrganizationResponseDto": { + "description": "A successfully created organization", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "items" + ], + "properties": { + "items": { + "type": "array", + "minItems": 1, + "maxItems": 1, + "items": { + "$ref": "#/components/schemas/Organization" + } + } + } + } + } + } + }, + "OrganizationListResponseBeta": { + "description": "A list of organizations", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Organization" + } + } + } + } + }, + "OrganizationListResponse": { + "description": "A list of organizations", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "items" + ], + "properties": { + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Organization" + } + }, + "nextCursor": { + "type": "string", + "description": "The cursor to get the next page of results (if available). Note that the server\nmay choose to paginate the results even though no limit can be specified by the user." + } + } + } + } + } + }, + "OrganizationWithContactPersonsResponseDto": { + "description": "An organization", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationWithContactPersons" + } + } + } + }, + "ClustersListResponseDto": { + "description": "A successfully changed list of allowed clusters", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ClustersListRequestResponse" + } + } + } + }, + "NewProjectResponseDto": { + "description": "A successfully created project", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "required": [ + "projectAdminGroupId" + ], + "properties": { + "projectAdminGroupId": { + "description": "The ID of the externally-managed group that was assigned as the admin group for the new project.\nThis may be different from what was specified in the request - see the description of the request\nfield `projectAdminGroupId`." + } + } + }, + { + "$ref": "#/components/schemas/ProjectCreateRequest" + } + ] + } + } + } + }, + "NewProjectListResponseDto": { + "description": "A successfully created project", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "items" + ], + "properties": { + "items": { + "type": "array", + "minItems": 1, + "maxItems": 1, + "items": { + "allOf": [ + { + "required": [ + "projectAdminGroupId" + ], + "properties": { + "projectAdminGroupId": { + "description": "The ID of the externally-managed group that was assigned as the admin group for the new project.\nThis may be different from what was specified in the request - see the description of the request\nfield `projectAdminGroupId`." + } + } + }, + { + "$ref": "#/components/schemas/ProjectCreateRequest" + } + ] + } + } + } + } + } + } + }, + "ProjectResponseDto": { + "description": "A list of projects", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "items" + ], + "properties": { + "items": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/ProjectResponse" + }, + { + "$ref": "#/components/schemas/ProjectWithAdminPropertiesResponse" + } + ] + } + }, + "nextCursor": { + "type": "string", + "description": "The cursor to get the next page of results (if available). Note that the server\nmay choose to paginate the results even though no limit can be specified by the user." + } + } + } + } + } + }, + "ProjectIntervalV0ResponseDto": { + "description": "A list of projects", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "items" + ], + "properties": { + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProjectInternalV0Response" + } + }, + "nextCursor": { + "type": "string", + "description": "The cursor to get the next page of results (if available). Note that the server\nmay choose to paginate the results even though no limit can be specified by the user." + } + } + } + } + } } }, "requestBodies": { @@ -63523,6 +74145,142 @@ } } } + }, + "CreateLocationFilterRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LocationFilterWrite" + } + } + } + }, + "ListLocationFiltersRequest": { + "content": { + "application/json": { + "schema": { + "properties": { + "flat": { + "type": "boolean", + "description": "Determines whether to return location filters in a flat list or in a hierarchical format", + "default": false + } + } + } + } + } + }, + "ByIdsLocationFiltersRequest": { + "content": { + "application/json": { + "schema": { + "required": [ + "ids" + ], + "properties": { + "ids": { + "type": "array", + "description": "The array of location filter ids to retrieve", + "items": { + "type": "number" + } + } + } + } + } + } + }, + "OrganizationRequestDtoBeta": { + "description": "A request to create an organization.", + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationRequestItem" + } + } + } + }, + "OrganizationRequestDto": { + "description": "A request to create an organization.", + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "items" + ], + "properties": { + "items": { + "type": "array", + "minItems": 1, + "maxItems": 1, + "items": { + "$ref": "#/components/schemas/OrganizationRequestItem" + } + } + } + } + } + } + }, + "ClustersListRequestDto": { + "description": "A request to change the allowed clusters for an organization", + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ClustersListRequestResponse" + } + } + } + }, + "NewProjectRequestDto": { + "description": "A request to create a new project", + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProjectCreateRequest" + } + } + } + }, + "NewProjectListRequestDto": { + "description": "A request to create a new project", + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "items" + ], + "properties": { + "items": { + "type": "array", + "minItems": 1, + "maxItems": 1, + "items": { + "$ref": "#/components/schemas/ProjectCreateRequest" + } + } + } + } + } + } + }, + "UpdateIdpRequestDto": { + "required": true, + "description": "A request to update the IdP configuration of an organization", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/IdentityProvider" + } + } + } } }, "examples": { @@ -63961,10 +74719,16 @@ "Changelog" ] }, + { + "name": "Organizations and projects", + "tags": [ + "Organizations", + "Projects" + ] + }, { "name": "Identity and access management", "tags": [ - "Projects", "Groups", "Security categories", "Sessions", @@ -63974,7 +74738,19 @@ ] }, { - "name": "Core data model", + "name": "Data modeling", + "tags": [ + "Data Modeling", + "Data models", + "Spaces", + "Views", + "Containers", + "Nodes", + "Instances" + ] + }, + { + "name": "Asset-centric data model", "tags": [ "Assets", "Time series", @@ -64051,15 +74827,13 @@ ] }, { - "name": "Data Modeling", + "name": "Data workflows", "tags": [ - "Data Modeling", - "Data models", - "Spaces", - "Views", - "Containers", - "Nodes", - "Instances" + "Workflows", + "Workflow versions", + "Workflow executions", + "Workflow triggers", + "Tasks" ] }, { @@ -64079,7 +74853,7 @@ "tags": [ { "name": "Changelog", - "description": "This article documents all notable changes to the Cognite Data Fusion (CDF) API v1.\n\n\n## 2024-05-01\n\n### Time series\n\n#### Added\n\n- Added support for [status codes](https://developer.cognite.com/dev/concepts/resource_types/timeseries#data-point-quality-status-codes) for data points.\n\n## 2024-04-02\n\n### Groups\n\n#### Added\n\n- Introduce the option to manage members of a group through CDF instead of through external groups in the identity provider. This is done through the new `members` field on the group object. Members can either be explicitly enumerated or one declare a group to include all users accounts. The latter is useful if one wants all existing users and new users who joins a project to automatically receive certain capabilities.\n\n## 2024-03-19\n\n### Engineering diagrams (beta)\n\n#### Added\n- Beta endpoint for retrieving ocr data for a file per page.\n Currently, only files that have been run through diagram/detect will give any results.\n This may be up for change in the future.\n The endpoint replaces a previous playground endpoint which is no longer documented.\n\n## 2024-03-11\n\n### Default runtime in Cognite functions\n\n#### Changed\n- Default Python runtime in Cognite functions has been updated from Python 3.8 (py38) to Python 3.11 (py311) in response to the upcoming end of community support for Python 3.8 in October 14, 2024.\n\n## 2024-03-06\n\n### Files\n\n#### Updated\n- Files API rate and concurrency limits have been documented.\n -- Service layer request rate and concurrency limits added\n -- CRUD endpoints request rate, concurrency and items rate limits added\n -- Analytic endpoints request rate, concurrency rate limits added\n\n## 2024-02-29\n\n### Assets\n\n#### Updated\n- Assets API rate and concurrency limits have been documented.\n -- Service layer request rate and concurrency limits added\n -- CRUD endpoints request rate, concurrency and items rate limits added\n -- Analytic endpoints request rate, concurrency and items rate limits added\n\n## 2024-02-20\n\n### Data Modeling\n\n#### Added\n**Conversion between unit types for returned values during filter and query operations.**\n- Trigger conversion by setting the `targetUnit` by `externalId` or `unitSystemName` parameters for the data source in a query.\n- When using filters with unit conversion, the unit for filter value is determined by the corresponding property in the `source` object. When querying data in centimeters by setting `targetUnit` on a property in the `source`, the filter value for that property will also be considered to be in centimeters.\n- `typing` - `type.unit` on a property in a `typing` object is now always the same as the unit for the returned data.\n- Added `typing` to following endpoints:\n - query\n - sync\n - aggregate\n - search\n\n## 2024-02-19\n\n### Time series\n\n#### Added\n\n- Data point subscriptions reaches General Availability (GA).\n - Use the new [Data point subscriptions](https://developer.cognite.com/dev/concepts/data_point_subscriptions/)\n feature to configure a subscription to listen to changes in one or more\n time series (in ingestion order).\n The feature is intended to be used where data points consumers need to keep up to date with\n changes to one or more time series without the need to read the entire time series again.\n\n## 2024-02-08\n\n### Hosted Extractors\n\n#### Changed\n\n- `host` in kafka sources has been replaced with `bootstrapBrokers`, which is an array of objects with `host` and `port`.\n\n\n## 2024-02-01\n\n### Synthetic time series\n\n#### Added\n- Support for unit conversion by setting `targetUnit` or `targetUnitSystem` on time series or aggregates with a compatible `unitExternalId` field.\n\n\n## 2024-01-16\n\n### Sessions\n\n#### Added\n- Support for creating one-shot sessions by setting the `oneshotTokenExchange` flag. One-shot sessions are short-lived sessions that are not refreshed and do not require support for token exchange from the identity provider.\n\n## 2024-01-02\n\n### Data Modeling\n\n#### Added\n- Support for a `bySpace` flag on btree indexes and uniqueness constraints.\n\n\n## 2023-12-12\n\n### Data Modeling\n\n#### Added\n- **Units catalog support for container properties**: You can now specify a unit from [CDF units catalog](https://developer.cognite.com/dev/concepts/resource_types/units) on `float32` and `float64` properties in containers.\n\n\n## 2023-12-11\n\n### Time series\n\n#### Changed\n\n- Data point subscriptions [list data (beta)](https://api-docs.cognite.com/20230101-beta/tag/Data-point-subscriptions/operation/listSubscriptionData/) now supports _long polling_ through the `pollTimeoutSeconds` parameter. The request will be kept active for the specified number of seconds, or until new data is available, whichever comes first.\n\n## 2023-12-06\n\n### Time series\n\n#### Added\n- [Units catalog](https://developer.cognite.com/dev/concepts/resource_types/units) support to time series. This comes in addition to the existing free-text unit field.\n - [Create timeseries](https://docs.cognite.com/api#tag/Time-series/operation/postTimeSeries) with a unitExternalId.\n - [Update timeseries](https://docs.cognite.com/api#tag/Time-series/operation/alterTimeSeries) to add/remove unitExternalId.\n- Filter and aggregate time series by unitExternalId or unitQuantity (eg. \"volume\" or \"temperature\"). Both using regular filters and advanced filters.\n - [Filter time series](https://docs.cognite.com/api#tag/Time-series/operation/listTimeSeries).\n - [Aggregate time series](https://docs.cognite.com/api#tag/Time-series/operation/aggregateTimeSeries).\n - [Search time series](https://docs.cognite.com/api#tag/Time-series/operation/searchTimeSeries).\n- Added unit conversion support to [retrieve data points/aggregates](https://docs.cognite.com/api#tag/Time-series/operation/getMultiTimeSeriesDatapoints) and [retrieve latest](https://docs.cognite.com/api#tag/Time-series/operation/getLatest). Specify a _targetUnit_ or _targetUnitSystem_ to convert the data points or aggregates to a different unit, or to the default unit of a given unit system.\n\n## 2023-11-30\n\n### Hosted extractors\n\n#### Changed\n\n- Hosted extractors API (Beta)\n - Updates hosted extractor schema with tls certificate details hence users can now provide CA and authentication certificates for connection to MQTT brokers.\n - Now includes schema requirements for connection to Kafka brokers i.e. connection to and extraction from Kafka brokers to Cognie Data fusion is not possible.\n\n## 2023-11-21\n\n### Units Catalog\n\n#### Added\n\n- Added the [Units Catalog](https://docs.cognite.com/api#tag/Units) API. The Units Catalog is a collection of units of measurement and their conversion factors. The Units Catalog is used within Cognite Data Fusion to easily convert between different units and unit systems when retrieving Time Series and Data Models.\n\n## 2023-11-17\n\n### Documents\n\n#### Added\n\n- Added support for sorting in the `/documents/list` endpoint. It works exactly the same as the sorting\n in `/documents/search` except that you can not sort on search relevance.\n\n## 2023-11-08\n\n### Engineering diagrams\n\n#### Changed\n\n- Optional token mechanism for accessing detected results of engineering diagrams without read all access to assets.\n See [diagram/detect](https://api-docs.cognite.com/20230101/tag/Engineering-diagrams/operation/diagramDetect) for details.\n\n## 2023-10-23\n\n### Files\n\n#### Added\n\n- Added multipart upload endpoints for the files API. This enables upload of files larger than 5 GiB, in a uniform way for all CDF cloud environments.\n Optionally use parallel part upload, for greater upload speed.\n See the documentation for the new endpoints at:\n - [Upload multipart file](https://docs.cognite.com/api/20230101/#tag/Files/operation/initMultiPartUpload) and\n - [Complete multipart upload](https://docs.cognite.com/api/20230101/#tag/Files/operation/completeMultiPartUpload) endpoints.\n\n## 2023-10-17\n### Events\n#### Added\n- New and old but previously undocumented API rate and concurrency limits have been documented.\nOverrides have been specified for existing customers, so that the new limits would not affect them.\n - Service layer request rate and concurrency limits added.\n - CRUD endpoints request rate and concurrency and items rate limits added\n\n## 2023-10-10\n\n### Entity matching\n\n#### Added\n\n- Entity matching pipelines are now in v1. We resuscitated the old playground API and made some changes.\n We will keep the new v1 API in beta for the foreseeable future.\n\n### Vision (Contextualization)\n\n#### Added\n\n- New computer vision models (beta) are available in Vision extract service, including digital, dial and level gauge readers, valve state detection (open/closed) and model to segment objects in images.\n\n## 2023-10-05\n\n### Hosted extractors\n\n#### Added\n\n- Hosted extractors API (Beta)\n - Use the new [Hosted extractors](https://docs.cognite.com/cdf/integration/guides/extraction/hosted_extractors)\n feature to create simple streaming extractors running inside CDF, streaming data from sources available on the internet\n directly into CDF.\n Currently supports Azure Event Hub and MQTT. Support is planned for Kafka and REST APIs.\n\n## 2023-09-27\n\n### 3D\n\n#### Changed\n\n- If the 3d model processing is ongoing or has failed, the 3d api nodes endpoints will now return error code 400 with the response body \"Revision processing is not yet complete\" or \"Revision processing failed\" respectively.\n The previous behavior was to return an empty or partial items list in these cases.\n Before calling any 3d api nodes endpoints, clients should check that the model revision has \"status\":\"Done\".\n\n## 2023-08-25\n\n### Transformations\n\n#### Changed\n\n- Fixed wrong description for fields in \"transformations/update\" and \"/transformations/schedules/update\"\n\n## 2023-08-22\n\n### Functions\n\n#### Changed\n\n- Remove Functions runtime \"py37\".\n\n## 2023-08-22\n\n### Time series\n\n#### Added\n\n- Data point subscriptions (Beta)\n - Use the new [Data point subscriptions](https://developer.cognite.com/dev/concepts/data_point_subscriptions/)\n feature to configure a subscription to listen to changes in one or more\n time series (in ingestion order).\n The feature is intended to be used where data points consumers need to keep up to date with\n changes to one or more time series without the need to read the entire time series again. (Beta)\n\n## 2023-08-10\n\n### Time series\n\n#### Added\n\n- Advanced query language support reaches General Availability (GA).\n - Advanced search, filtering, and sorting capabilities in the [Filter time series](https://docs.cognite.com/api/20230101/#tag/Time-series/operation/listTimeSeries) endpoint.\n - Advanced aggregation capabilities in the [Aggregate time series](https://docs.cognite.com/api/20230101/#tag/Time-series/operation/aggregateTimeSeries) endpoint.\n\n### Sequences\n\n#### Added\n\n- Advanced query language support reaches General Availability (GA).\n - Advanced search, filtering, and sorting capabilities in the [Filter sequences](https://docs.cognite.com/api/20230101/#tag/Sequences/operation/advancedListSequences) endpoint.\n - Advanced aggregation capabilities in the [Aggregate sequences](https://docs.cognite.com/api/20230101/#tag/Sequences/operation/aggregateSequences) endpoint.\n\n## 2023-08-08\n\n### Assets\n\n#### Added\n\n- Advanced query language support reaches General Availability (GA).\n - Advanced search, filtering, and sorting capabilities in the [Filter assets](https://docs.cognite.com/api/20230101/#tag/Assets/operation/listAssets) endpoint.\n - Advanced aggregation capabilities in the [Aggregate assets](https://docs.cognite.com/api/20230101/#tag/Assets/operation/aggregateAssets) endpoint.\n\n### Events\n\n#### Added\n\n- Advanced query language support reaches General Availability (GA).\n - Advanced search, filtering, and sorting capabilities in the [Filter events](https://docs.cognite.com/api/20230101/#tag/Events/operation/advancedListEvents) endpoint.\n - Advanced aggregation capabilities in the [Aggregate events](https://docs.cognite.com/api/20230101/#tag/Events/operation/aggregateEvents) endpoint.\n\n### Documents\n\n#### Added\n\n- Advanced query language support reaches General Availability (GA).\n - Advanced aggregation capabilities in the [Aggregate documents](https://docs.cognite.com/api/20230101/#tag/Documents/operation/documentsAggregate) endpoint.\n\n## 2023-06-27\n\n### IAM (Identity and access management)\n\n#### Changed\n\n- Identity providers (IdP) are required to be compatible with the [OpenID Connect Discovery 1.0](https://openid.net/specs/openid-connect-discovery-1_0.html) standard, and compliance will now be enforced by the [Projects](tag/Projects) API.\n - The `oidcConfiguration.jwksUrl` and `oidcConfiguration.tokenUrl` can be entirely omitted when updating the OIDC configuration for a project.\n - The `oidcConfiguration.jwksUrl` and `oidcConfiguration.tokenUrl` are preserved for backwards compatibility of the API. However, if these are specified as part of the request body, the value must match excatly the values that are specified in the OpenID provider configuration document for the configured issuer (can be found at `https://{issuer-url}/.well-known/openid-configuration`). If the values does not match, the API will return an error message.\n\n- The `oidcConfiguration.skewMs` has been deprecated but remains part of the API for backwards compatibility. It can be omitted from the request. If included, it must always be set to `0`.\n\n- The `oidcConfiguration.isGroupCallbackEnabled` has been deprecated but remains part of the API for backwards compatibility. It can be omitted from the request.\n - For projects configured to use Azure Active Directory as the identity provider, if this value is specified in the request, it must always be set to `true`.\n\n## 2023-06-05\n\n### Data Modeling\n\n#### Added\n\n- Added support for an `autoCreateDirectRelations` option on the endpoint for ingesting instances.\nThis option lets the user specify whether to create missing target nodes of direct relations.\n\n#### Removed\n\n- Removed support for the deprecated per-item `sources` field on the `/instances/byids` endpoint.\n\n### Time series\n\n#### Added\n\n- Added advanced query language support (Beta).\n - Advanced search, filtering, and sorting capabilities in the [Filter time series](tag/Time-series/operation/listTimeSeries) endpoint.\n - Advanced aggregation capabilities in the [Aggregate time series](tag/Time-series/operation/aggregateTimeSeries) endpoint.\n\n### Sequences\n\n#### Added\n\n- Added advanced query language support (Beta).\n - Advanced search, filtering, and sorting capabilities in the [Filter sequences](tag/Sequences/operation/advancedListSequences) endpoint.\n - Advanced aggregation capabilities in the [Aggregate sequences](tag/Sequences/operation/aggregateSequences) endpoint.\n\n## 2023-05-19\n\n### Transformations\n\n#### Added\n\n- Adding support for data model centric and view centric schema.\n\n## 2023-04-24\n\n### Transformations\n\n#### Removed\n\n- Removing support for authentication via API keys when creating or updating transformations.\n\n## 2023-05-04\n\n### Annotations\n\n#### Added\n\n- Added `image.InstanceLink` and `diagrams.InstanceLink` annotation types to allow you to link from objects discovered in images and engineering diagrams to data model instances.\n\n## 2023-04-18\n\n### All resources\n\n#### Added\n\n- Added information about [Requests throttling](section/Requests-throttling).\n\n#### Changed\n\n- Updated the [Parallel retrieval](section/Parallel-retrieval) documentation.\n- Aligned endpoint naming within Assets, Data sets, Events, and Files.\n\n### Assets\n\n#### Added\n\n- Added advanced query language support (Beta).\n - Advanced search, filtering, and sorting capabilities in the [Filter assets](https://docs.cognite.com/api/20230101-beta/#tag/Assets/operation/listAssets) endpoint.\n - Advanced aggregation capabilities in the [Aggregate assets](https://docs.cognite.com/api/20230101-beta/#tag/Assets/operation/aggregateAssets) endpoint.\n\n### Events\n\n#### Added\n\n- Added advanced query language support (Beta).\n - Advanced search, filtering, and sorting capabilities in the [Filter events](https://docs.cognite.com/api/20230101-beta/#tag/Events/operation/advancedListEvents) endpoint.\n - Advanced aggregation capabilities in the [Aggregate events](https://docs.cognite.com/api/20230101-beta/#tag/Events/operation/aggregateEvents) endpoint.\n\n### Documents\n\n#### Added\n\n- Added advanced query language support (Beta).\n - Advanced aggregation capabilities in the [Aggregate documents](https://docs.cognite.com/api/20230101-beta/#tag/Documents/operation/documentsAggregate) endpoint.\n\n## 2023-04-12\n\n### Sessions\n\n#### Fixed\n\n- Fixed the API documentation for the request body of the [POST /projects/{project}/sessions/byids](tag/Sessions/operation/getSessionsByIds) endpoint.\nThe documentation incorrectly stated the request body schema as specifying the list of session IDs to retrieve, in the form `{\"items\": [42]}` - it should in fact be `{\"items\": [{\"id\": 42}]}`. The documentation has been updated to reflect this.\n\n- Fixed the API documentation for the response body of the [POST /projects/{project}/sessions/byids](tag/Sessions/operation/getSessionsByIds) endpoint.\nThe documentation incorrectly stated `nextCursor` and `previousCursor` fields as being returned from the response, which was not the case, and these fields have now been removed from the API documentation.\n\n## 2023-04-04\n\n### Transformations\n\n#### Change\n\n- Transformations support new target types for view-centric data model instances.\n\n#### Added\n\n- Added target types `nodes` and `edges`.\n\n## 2023-03-06\n\n### Documents\n\n#### Change\n\n- Renamed \"approximateCardinality\" aggregate to \"cardinalityValues\" to unify the search spec in Cognite.\n- \"uniqueProperties\" aggregate no longer supports pagination. It returns unique properties (up to 10000) in the specified path. The results are sorted by frequency.\n\n#### Added\n\n- Added \"allUniqueProperties\" aggregate that returns all unique properties. The response contains a cursor that can be used to fetch all pages of data.\n\n## 2023-02-03\n\n### Seismic\n\n#### Added\n\n- Batch downloading of seismics as a ZIP archive is now an experimental v1 endpoint. A user requires the experimental ACL to use this endpoint, and any other ACLs and scopes to read the downloadable seismics.\n\n#### Fixed\n\n- The documentation for downloading seismics as SEG-Y files is part of v1. The API documentation didn't reflect that the endpoint had been promoted to version 1.\n\n## 2023-02-07\n\n### Documents\n\n#### Added\n\n- Added `highlight` field in the `search` endpoint to indicate whether matches in search results should be highlighted.\n\n## 2023-01-18\n\n### 3D\n\n#### Added\n\n- Added support for using names filter in list nodes endpoint.\n\n## 2023-01-17\n\n### Authentication\n\n#### Removed\n\nWe've removed authentication via CDF service accounts and API keys, and user sign-in via `/login`.\n\n### 3D\n\n#### Added\n\n- Added support for storing translation and scale for model revision.\n\n## 2023-01-12\n\n### Documents\n\n#### Added\n\n- Added support for approximateCardinality aggregate.\n\n## 2023-01-10\n\n### Documents\n\n#### Added\n\n- Added the search leaf filter, to allow filtering by searching through specified properties.\n\n## 2023-01-09\n\n### Documents\n\n#### Added\n\n- Added the uniqueProperties aggregation, which can be used to find all the metadata keys in use.\n\n## 2023-01-06\n\n### Documents\n\n#### Added\n\n- Added inAssetSubtree filter to filter documents that have a related asset in a subtree rooted at any of the specified IDs.\n\n## 2023-01-02\n\n### Documents\n\n#### Added\n\n- Added advanced filters for metadata (prefix, in, equals)\n\n## 2022-12-06\n\n### 3D\n\n#### Added\n\n- Added get3DNodesById endpoint to be able to fetch 3D nodes mapped to an asset.\n\n## 2022-12-16\n\n### Time series\n\n#### Changed\n\n- Timestamps of data points may now be as large as 4102444799999 (23:59:59.999, December 31, 2099). The previous limit was the year 2050.\n\n## 2022-11-29\n\n### Events\n\n#### Added\n\n- Added `nulls` field to the sort property specification\n\n## 2022-11-17\n\n### Time series\n\n#### Added\n\n- Added `nextCursor` field to [Retrieve data points](tag/Time-series/operation/getMultiTimeSeriesDatapoints), to support cursor pagination\n\n## 2022-10-14\n\n### Geospatial\n\n#### Added\n\n- Added the [POST /projects/{project}/geospatial/compute](tag/Geospatial/operation/compute) endpoint.\n\n## 2022-10-11\n\n### Transformations\n\n#### Added\n\n- Added capability to run a transformation with Nonce credentials provided through the Run endpoint.\n\n## 2022-10-06\n\n### IAM (Identity and access management)\n\n#### Added\n\n- Added the [POST /projects/{project}/sessions/byids](tag/Sessions/operation/getSessionsByIds) endpoint.\n\n## 2022-09-09\n\n### Vision (Contextualization)\n\n#### Added\n\n- Move Vision extract service from playground to V1.\n\n## 2022-08-12\n\n### Time series\n\n#### Changed\n\n- Updated datapoints timestamp range from 1971 - 2050 to 1900 - 2050.\n Affected endpoints:\n - [Insert data points](tag//Time-series/operation/postMultiTimeSeriesDatapoints)\n - [Retrieve data points](tag//Time-series/operation/getMultiTimeSeriesDatapoints)\n - [Delete data points](tag//Time-series/operation/deleteDatapoints)\n - [Retrieve latest data point](tag//Time-series/operation/getLatest)\n - [Synthetic query](tag//Synthetic-Time-Series/operation/querySyntheticTimeseries)\n\n## 2022-07-21\n\n### Transformations\n\n#### Added\n\n- Added authentication using nonce for transformation's exisiting endpoints.\n\n## 2022-06-21\n\n### Annotations (Data organization)\n\n#### Added\n\n- Moved the annotation service from playground to v1.\n\n## 2022-07-07\n\n### Events\n\n#### Removed\n\n- End-of-life for [filter.rootAssetIds](tag/Events/operation/advancedListEvents) filtering attribute.\n\n## 2022-06-13\n\n### IAM (Identity and access management)\n\n#### Added\n\n- Added the [POST /projects/{project}/sessions/revoke](tag/Sessions/operation/revokeSessions) endpoint.\n\n## 2022-05-20\n\n### Documents\n\n#### Added\n\n- Added the `POST /documents/aggregate` endpoint. The endpoint allows you to count documents optionally grouped by a property and also to retrieve all unique values of a property.\n\n## 2022-05-12\n\n### Documents\n\n#### Added\n\n- Added the `POST /documents/list` endpoint. The endpoint allows you to iterate through all the documents in a project.\n- Added the `POST /documents/{documentId}/content` endpoint. The endpoint lets you download the entire extracted plain text of a document.\n\n## 2022-04-11\n\n### Documents\n\n#### Added\n\n- Added the [GET /documents/{documentId}/preview/image/pages/{pageNumber}](tag/Document-preview/operation/documentsPreviewImagePage) endpoint.\n- Added the [GET /documents/{documentId}/preview/pdf](tag/Document-preview/operation/documentsPreviewPdf) endpoint.\n- Added the [GET /documents/{documentId}/preview/pdf/temporarylink](tag/Document-preview/operation/documentsPreviewPdfTemporaryLink) endpoint.\n\n## 2022-03-15\n\n### Sequences\n\n#### Changed\n\n- Changed sequences column limits. Old limit of maximum total 200 columns limits is updated to maximum 400 total columns, maximum 400 numeric columns and maximum 200 string columns.\n\n## 2022-03-02\n\n### Sequences\n\n#### Added\n\n- Added the [POST /sequences/data/latest](tag/Sequences/operation/getLatestSequenceRow) endpoint.\n\n## 2022-02-08\n\n### Time series\n\n#### Changed\n\n- Marked `isStep` parameter to be editable (i.e. removed description stating it is not updatable) in [POST /timeseries/create](tag/Time-series/operation/postTimeSeries).\n\n#### Added\n\n- Added `isStep` parameter to the `TimeSeriesPatch` object used in [POST /timeseries/update](tag/Time-series/operation/alterTimeSeries)\n\n## 2022-02-07\n\n### Documents\n\n#### Added\n\n- The [POST /documents/search](tag/Documents/operation/documentsSearch) endpoint now supports pagination.\n\n## 2022-01-25\n\n### Documents\n\n#### Added\n\n- Added the [POST /documents/search](tag/Documents/operation/documentsSearch) endpoint.\n\n## 2022-01-24\n\n### Time series\n\n#### Added\n\n- Added optional `ignoreUnknownIds` parameter to [POST /sequences/delete](tag/Sequences/operation/deleteSequences). Setting this to true will prevent the operation from failing if one or more of the given sequences do not exist; instead, those given sequences that do exist will be deleted.\n\n## 2021-12-07\n\n### Transformations\n\n#### Added\n\n- New [Transformations](tag//Transformations) APIs to v1 to create,retrieve,list and delete transformations\n- New [Transformation Jobs](tag//Transformation-Jobs) APIs to v1 to retrieve and list transformation jobs or job metrics\n- New [Transformation Schedule](tag//Transformation-Schedules) APIs to v1 to manage schedules of transformations\n- New [Transformation Notifications](tag//Transformation-Notifications) APIs to v1 to manage notifications from transformation job\n\n## 2021-11-22\n\n### Contextualization\n\n#### Added\n\n- Added [diagram detect](tag/Engineering-diagrams/operation/diagramDetect) endpoint to v1 to detect annotations in engineering diagrams\n- Added [diagram detect results](tag/Engineering-diagrams/operation/diagramDetectResults) endpoint to v1 to get the results from an engineering diagram detect job\n- Added [diagram convert](tag/Engineering-diagrams/operation/diagramConvert) endpoint to v1 to create interactive engineering diagrams in SVG format with highlighted annotations\n- Added [diagram convert results](tag/Engineering-diagrams/operation/diagramConvertResults) endpoint to v1 to get the results for a job converting engineering diagrams to SVGs\n\n## 2021-11-17\n\n### 3D\n\n#### Added\n\n- Added `dataSetId` support to 3D models enabling data access scoping of 3D data\n\n## 2021-10-13\n\n### Raw\n\n#### Changed\n\n- To align with Microsoft Azure clusters, table and database names are now sensitive to trailing spaces also in Google Cloud Platform clusters.\n\n## 2021-10-05\n\n### Extraction Pipelines\n\n#### Added\n\n- New [Extraction Pipelines](tag//Extraction-Pipelines) resource to document extractors and monitor the status of data ingestion to make sure reliable and trustworthy data are flowing into the CDF data sets.\n- API endpoints for creating, managing, and deleting extraction pipelines. Capture common attributes around extractors such as owners, contacts, schedule, destination RAW databases, and data set. Document structured metadata in the form of key-value attributes as well unstructured `documentation` attribute that supports Markdown (rendered as Markdown in Fusion).\n- Extraction Pipelines Runs are CDF objects to store statuses related to an extraction pipeline. The supported statuses are: `success`, `failure` and `seen`. They enable extractor developers to report status and error message after ingesting data. As well enables for reporting heartbeat through `seen` status by the extractor to easily identify issues related to crushed applications and scheduling issues.\n\n## 2021-09-28\n\n### Sequences\n\n#### Added\n\n- Added `partition` parameter to the [GET /sequences](tag/Sequences/operation/listSequences) endpoint to support [parallel retrieval](section/Parallel-retrieval).\n- [POST /sequences/list](tag/Sequences/operation/advancedListSequences) now supports [parallel retrieval](section/Parallel-retrieval).\n\n### Time series\n\n#### Added\n\n- Added `partition` parameter to the [GET /timeseries](tag/Time-series/operation/getTimeSeries) endpoint to support [parallel retrieval](section/Parallel-retrieval).\n\n## 2021-08-18\n\n### IAM (Identity and access management)\n\n#### Added\n\nAdded sessions to [v1](tag//Sessions). Sessions let you securely delegate access to CDF resources for CDF services (such as Functions) by an external principal and for an extended time.\n\n## 2021-08-12\n\n### Relationships\n\n#### Added\n\n- Relationships now support [Parallel Retrieval](section/Parallel-retrieval)\n\n## 2021-07-01\n\n### 3D\n\n#### Added\n\n- Added filter3dNodes endpoint to allow for more advanced filtering on node metadata\n\n## 2021-06-29\n\n### Labels\n\n#### Added\n\n- [Dataset scoping](tag/Labels/operation/listLabels) based on `dataSetIds`.\n\n## 2021-06-08\n\n### Sequences\n\n#### Added\n\n- Added [syntax for updating columns](tag/Sequences/operation/updateSequences) of existing sequences. Can `remove` columns, `modify` existing columns, and `add` new columns as well.\n\n## 2021-06-01\n\n### Assets\n\n#### Added\n\n- Added labels replace (set) method for [assets update](tag/Assets/operation/updateAssets).\n\n## 2021-04-28\n\n### Time series\n\n#### Changed granularity limits on hour aggreagates\n\nYou can now ask for a [granularity](https://docs.cognite.com/dev/concepts/aggregation/#granularity)\nof up to 100000 hours (previously 48 hours), both in normal aggregates and in synthetic time series.\n\n## 2021-04-12\n\n### IAM (Identity and access management)\n\n#### Added\n\n- Added a [projects list](tag/Projects/operation/listProjects) endpoint to v1\n- Added a [token inspection](tag/Token/operation/inspectToken) endpoint to v1\n\n## 2021-04-06\n\n### Authentication\n\n#### Deprecated\n\nWe are deprecating authentication via CDF service accounts and API keys, and user sign-in via `/login`, in favor of registering applications and services with your IdP (identity provider) and [using OpenID Connect](https://docs.cognite.com/cdf/access/) and the IdP framework to manage CDF access securely.\n\nThe legacy authentication flow is available for customers using Cognite Data Fusion (CDF) on GCP until further notice. We strongly encourage customers to adopt [the new authentication flows](https://docs.cognite.com/cdf/access/) as soon as possible.\n\nThe following API endpoints are deprecated:\n\n- `/api/v1/projects/*/apikeys`\n- `/api/v1/projects/*/serviceaccounts`\n- `/login`\n- `/logout`\n- `/api/v1/projects/*/groups/serviceaccounts` \\*\n\n\\*only the sub-resources for listing, adding, and removing members of groups.\n\n## 2021-03-22\n\nCDF API 0.5, 0.6 reached their end-of-life after its initial deprecation announcement in Summer 2019.\n\n## 2021-03-10\n\n### 3D\n\n#### Added\n\n- Added `partition` parameter to the List 3D Nodes endpoint for supporting parallel requests.\n- Added `sortByNodeId` parameter to the List 3D Nodes endpoint, improving request latency in most cases if set to `true`.\n\n## 2021-02-26\n\n### Entity matching\n\n#### Fixed\n\n- Fixed a bug in the documentation for Entity matching. The (job) `status` shall be capitalized string.\n\n## 2020-12-22\n\n### Files\n\n#### Added\n\n- New field `fileType` inside `derivedFields` to refer to a pre-defined subset of MIME types.\n- New filter `fileType` inside `derivedFields` to find files with a pre-defined subset of MIME types.\n\n## 2020-10-20\n\n### Files\n\n#### Added\n\n- New field `geoLocation` to refer to the geographic location of the file.\n- New filter `geoLocation` to find files matching a certain geographic location.\n\nTo learn how to leverage new geoLocation features, [follow our guide](https://developer.cognite.com/dev/concepts/resource_types/files.html).\n\n## 2020-08-29\n\n### Files\n\n#### Added\n\n- New field `directory` referring to the directory in the source containing the file.\n- New filter `directoryPrefix` allows you to find Files matching a certain directory prefix.\n\n## 2020-08-05\n\n### Files\n\n#### Added\n\n- New field `labels` allows you to attach labels to Files upon creation or updating.\n- New filter `labels` allows you to find Files that have been annotated with specific labels.\n\n## 2020-07-08\n\n### IAM (Identity and access management)\n\n#### Added\n\n- New project field `applicationDomains`. If this field is set, users only sign in to the project through applications hosted on\n a whitelisted domain. [Read more](https://developer.cognite.com/dev/guides/iam/#application-domains).\n\n## 2020-07-01\n\n### Events\n\n#### Added\n\n- New aggregation [`uniqueValues`](tag/Events/operation/aggregateEvents) allows you to find different types, subtypes of events in your project.\n\n## 2020-06-29\n\n### Labels\n\n#### Added\n\n- New data organization resource: [labels](tag//Labels). Manage terms that you can use to annotate and group assets.\n\n### Assets\n\n#### Added\n\n- New filter `labels` allows you to find resources that have been annotated with specific labels.\n\n### Time series\n\n#### Added\n\n- Combine various input time series, constants and operators with on-the-fly [synthetic time series](https://developer.cognite.com/dev/concepts/resource_types/synthetic_timeseries.html).\n\n## 2020-04-28\n\n### Events\n\n#### Added\n\n- New filtering capabilities to find open events [`endTime=null`](tag/Events/operation/advancedListEvents).\n- New filtering capabilities to find all events intersecting a timespan using [activeAtTime](tag/Events/operation/advancedListEvents).\n\n## 2020-03-12\n\n### General\n\n#### Added\n\n- New data organization resource: [data sets](tag//Data-sets). Document and track data lineage, ensure data integrity, and allow 3rd parties to write their insights securely back to your Cognite Data Fusion (CDF) project.\n- New attribute `datasetId` introduced in assets, files, events, time series and sequences.\n- New filter `dataSetIds` allows you to narrow down results to resources containing `datasetId` by a list of ids or externalIds of a data set. Supported by assets, files, events, time series and sequences.\n- We have added a new aggregation endpoint for [time series](tag/Files/operation/aggregateFiles). With this endpoint, you can find out how many results in a tenant meet the criteria of a filter. We will expand this feature to add more aggregates than `count`.\n\n### Groups\n\n#### Added\n\n- Introduced a new capability: `datasetsAcl` for managing access to data set resources.\n- New scope `datasetScope` for assets, files, events, time series and sequences ACLs. Allows you to scope down access to resources contained within a specified set of data sets.\n\n## 2020-03-10\n\n### 3D\n\n#### Fixed\n\n- We fixed a bug in the documentation of [3D model revisions](tag/3D-Model-Revisions/operation/get3DNodesById). Applications should anticipate that 3D nodes may not have a bounding box.\n\n## 2020-02-25\n\n### Assets\n\n#### Added\n\n- We have added a new [aggregation endpoint](tag/Assets/operation/aggregateAssets) for assets. With this endpoint, you can find out how many assets in a tenant meet the criteria of a filter. We will expand this feature to add more aggregates than `count`.\n\n### Events\n\n#### Added\n\n- We have added a new [aggregation endpoint](tag/Events/operation/aggregateEvents) for events. With this endpoint, you can find out how many events in a tenant meet the criteria of a filter. We will expand this feature to add more aggregates than `count`.\n\n## 2020-02-12\n\n### Assets\n\n#### Added\n\n- We have added new aggregation properties: `depth` and `path`. You can use the properties in the filter and retrieve endpoints.\n\n## 2020-02-10\n\n### Assets\n\n#### Added\n\n- Added the property `parentExternalId` which is returned for all assets which have a parent with a defined `externalId`.\n\n## 2019-12-09\n\n### General\n\n#### Added\n\n- Added `assetSubtreeIds` as a parameter to filter, search, and list endpoints for all core resources. `assetSubtreeIds` allows you to specify assets that are subtree roots, and then only retrieve resources that are related to assets within those subtrees.\n\n## 2019-12-04\n\n### Assets\n\n#### Added\n\n- Added the ability to [filter](tag/Assets/operation/searchAssets) assets by parent external IDs.\n\n## 2019-11-18\n\n### Events\n\n#### Added\n\n- [Added the ability to filter events by the external ID of linked assets](tag/Events/operation/advancedListEvents)\n\n## 2019-11-12\n\n### Access control\n\n#### Removed\n\n- Groups can no longer be created with a permissions field in v0.5.\n\n## 2019-10-31\n\n### Assets\n\n#### Added\n\n- [Asset search](/api/v1/#operation/searchAssets) now has a `search.query` parameter. This uses an improved search algorithm that tries a wider range of variations of the input terms and gives much better relevancy ranking than the existing `search.name` and `search.description` fields.\n\n### Time Series\n\n#### Changed\n\n- The `search.query` parameter for [time series search](/api/v1/#operation/searchTimeSeries) now uses an improved search algorithm that tries a wider range of variations of the input terms, and gives much better relevancy ranking.\n\n## 2019-10-23\n\n### Files\n\n#### Added\n\n- Added support for updating the `mimeType` for existing files in files/update requests.\n\n## 2019-10-18\n\n### Time Series\n\n#### Added\n\n- Time series expanded their filtering capabilities with new `Filter time series` endpoint, allowing for additional filtering by:\n\n - Name\n - Unit\n - Type of time series: string or step series\n - Metadata objects\n - ExternalId prefix filtering\n - Create and last updated time ranges\n\n Endpoint in addition support pagination and partitioning. Check out detailed API documentation [here](/api/v1/#operation/listTimeSeries).\n\n## 2019-10-16\n\n### Events\n\n#### Added\n\n- [Added the ability to sort events on startTime, endTime, createdTime, and lastUpdatedTime](tag/Events/operation/advancedListEvents)\n\n## 2019-10-02\n\n### Sequences\n\n#### Added\n\n- Introducing the new **sequences** core resource type that lets you store numerically indexed multi-column rows of data. Connect your sequences to physical assets and to their source systems through `externalId` and metadata support. Read more [here](https://developer.cognite.com/dev/concepts/resource_types/sequences.html).\n\n## 2019-09-30\n\n### 3D\n\n#### Added\n\n- Added endpoint to get multiple nodes for a 3D model by their IDs.\n- Added endpoint to get asset mappings for multiple node IDs or asset IDs.\n\n## 2019-09-23\n\n### Files\n\n#### Added\n\n- Added support for filter on `rootAssetIds` in files GET /files (using query parameter) and POST /files/list (in request body).\n\n## 2019-09-16\n\n### Assets and Events\n\n#### Added\n\n- Added support for `partition` in `/assets` and `/events` to support parallel retrieval. See guide for usage [here](./concepts/pagination)\n\n## 2019-08-22\n\n### 3D\n\n#### Added\n\n- Added the query parameter `intersectsBoundingBox` to the list asset mappings endpoint. The parameter filters asset mappings to the assets where the bounding box intersects (or is contained within) the specified bounding box.\n\n## 2019-08-21\n\n### Files\n\n#### Added\n\n- Added support for sourceCreatedTime and sourceModifiedTime fields in files v1 endpoints.\n\n### Assets\n\n#### Added\n\n- Allow the parent asset ID to be updated. The root asset ID must be preserved, and you can not convert a non-root asset to a root asset or vice versa.\n- Support for ignoreUnknownIds when deleting assets.\n\n## 2019-08-15\n\n### 3D\n\n#### Added\n\n- Properties field for 3D nodes, extracted from uploaded 3D files.\n- Ability to filter nodes with a specific set of properties.\n\n## 2019-07-24\n\n### Files\n\n#### Changed\n\n- Allow lookup of names with length up to 256 characters (was 50) for GET /files and POST /files/search operations.\n- Allow creating and retrieving files with mimeType length up to 256 characters (was 64).\n\n## 2019-07-15\n\n### Time series\n\n#### Added\n\n- Added query parameter `rootAssetIds` to list time series endpoint. Returns time series that are linked to an asset that has one of the root assets as an ancestor.\n\n## 2019-07-11\n\nList of changes for initial API v1 release in comparison to previous version - API 0.5\n\n### General\n\n#### Added\n\n- Support for `externalId` added across resource types. `externalId` lets you define a unique ID for a data object. Learn more: [External IDs](https://developer.cognite.com/dev/concepts/external_id.html)\n- `externalIdPrefix` added as a parameter to the list events, assets and files operations.\n- Richer filtering on the list assets, files and events operations.\n- Search, list and filter operations for assets, events and files now support filtering on source and metadata field values.\n\n#### Changed\n\n- Core resources standardize on HTTP methods and URI naming for common operations such as search, partial updates, delete, list and filter\n- API responses are no longer wrapped in a top level `data` object.\n- Standardized pagination across resources through `limit`, `cursor` and `nextCursor` parameters.\n- The `limit` parameter no longer implicitly rounds down requested page size to maximum page size.\n- Standardized error responses and codes across all resources. Errors across CDF can be parsed into a single model.\n- Overall improvements to reference documentation. Including documented input constraints, required fields, individual attribute descriptions.\n\n#### Removed\n\n- The `sourceId` field has been removed from resources. Use `externalId` instead of `sourceId`+`source` to define unique IDs for data objects.\n- Sorting is removed from the search operations for files, assets, events and time series. Results are sorted by relevance.\n- `offset` and `previousCursor` parameters are no longer supported for pagination across resources.\n- Fetching an asset subtree is no longer supported by files, assets, events and time series.\n\n### Assets\n\n#### Added\n\n- Ability to select only root assets though new `root` filter.\n- Added the `rootId` field to specify the top element in an asset hierarchy.\n- Added the ability to filter by the root asset ID. This allows you to scope queries for one or many asset hierarchies.\n- List Assets allows for filtering assets belonging to set of root assets, specified by list of asset internal ids. New query parameter: `rootIds`.\n- Filter and Search Assets allows or filtering assets belonging to a set of root assets, specified by combination of internal and external asset identifiers. New body attribute: `rootIds`.\n\n#### Changed\n\n- Updating a single asset is no longer supported through a separate endpoint. Use the update multiple endpoint instead.\n- Delete assets by default removes only leaf assets (assets without children). New parameter 'recursive' allows for enabling recursive removal of the entire subtree of the asset pointed by ID (API 0.5 behaviour).\n\n#### Removed\n\n- Overwriting assets is no longer supported.\n- Filtering assets by their complete description is no longer supported.\n- Locating assets fuzzily by name has been removed. Instead, search for assets on the `name` property.\n- When searching assets, querying over both name and description in the same query is no longer supported.\n- The experimental query parameter `boostName` has been removed from the search for assets operation.\n- Removed the `path` and `depth` fields.\n\n### Events\n\n#### Added\n\n- Events can now be filtered on asset ID in combination with other filters.\n- New filter `rootAssetIds` allows for narrowing down events belonging only to list or specified root assets. Supported by Filter and Search API\n\n#### Removed\n\n- Events can no longer be filtered by empty description.\n- The 'dir' parameter has been removed from the search events operation.\n\n### Files\n\n#### Added\n\n- Filtering files by `assetIds` in list files operations now support multiple assets in the same request.\n\n#### Changed\n\n- Download file content has changed from HTTP GET to HTTP POST method.\n- We have renamed the `fileType` field to `mimeType`. The field now requires a MIME formatted string (e.g. `text/plain`).\n- We have renamed the `uploadedAt` field to `uploadedTime`.\n- Resumable is now the default behavior for file uploads.\n- Update metadata for single files is no longer supported by a separate operation. Instead, use the update multiple operation.\n\n#### Removed\n\n- Replace files metadata endpoint has been removed.\n- Directory has been removed as a property of files.\n- Updating the `name` or `mimeType` of a file through the update multiple files operation is no longer supported.\n- Query parameter for specifying the sort direction has been removed from list all files operations.\n\n### Raw\n\n#### Changed\n\n- Raw has changed structure to become resource-oriented. The URL structure has changed.\n- Recursively delete of tables and rows when deleting a database is now the default behavior without a control parameter.\n\n### Time series\n\n#### Added\n\n- Support for adding datapoints by `id` and `externalId` of time series. Adding datapoints to time series by `name` has been removed.\n- Add ability to update the new `externalId` attribute for time series.\n- Allow to set `externalId` during creation of time series. `ExternalId` requires uniqueness across time series.\n- Consolidate multiple APIs to allow adding datapoints into a single endpoint. Allows datapoints to be added to multiple time series at the same time.\n- Retrieve data points by using `id` and `externalId` of the time series.\n- Time series created through API v1 are not discoverable by API 0.3, 0.4, 0.5 and 0.6 by default. Introduce the option to enable this compatibility by setting new attribute - `legacyName` on time series creation. Value is required to be unique.\n\n#### Changed\n\n- Get latest datapoints has been reworked. Introduces support for `id` and `externalId` lookup as well retrieval for multiple time series within the same request.\n- Time series name is no longer limited by uniqueness. Note that time series (meta objects) created by API v1 will not be discoverable by older API versions.\n- Delete time series endpoint has been redesigned to allow deletion of multiple time series by `id` and `externalId`.\n- Delete single and multiple datapoints endpoint has been redesigned and consolidated into a single endpoint. New delete allows selection of multiple time series and time ranges by `id` and `externalId`. Selecting by `name` is no longer available.\n- Update multiple time series restructured to support lookup by `externalId`.\n- Retrieve time series by ID endpoint restructured adding the ability to get time series by `externalId`.\n- Set limit for data point value to min -1E100, max 1E100.\n\n#### Removed\n\n- Experimental feature for performing calculations across multiple time series (synthetic time series), function and alias attributes are no longer available.\n- The experimental query parameter `boostName` has been removed from search operation.\n- Short names for aggregate functions are no longer supported.\n- Ability to remove time series by `name` have been removed as names are no longer unique identifiers.\n- Select multiple time series and time ranges by `name` is no longer available.\n- The ability to update `isString` and `isStep` attributes is removed. The attributes are not intended to be modified after creation of time series.\n- The endpoint for updating single time series is removed. Use the update multiple time series endpoint instead.\n- Remove ability to overwrite time series object by `id`. Use the update multiple time series endpoint instead.\n- The ability to retrieve time series matching by `name` has been removed. Use `externalId` instead.\n- The ability to retrieve by `id` from a single time series has been removed. Use retrieve multiple datapoints for multiple time series instead.\n- The ability to retrieve time-aligned datapoints through \"dataframe\" API has been removed. Similar functionality is available through our supported SDKs.\n- The ability to add datapoints to time series by `name` has been removed.\n- The ability to look up by time series `name` has been removed.\n\n### IAM (Identity and access management)\n\n#### Added\n\n- The login status endpoint includes the ID of the API key making the request (new attribute: `apiKeyId`), if the request used an API key.\n\n#### Changed\n\n- The user resource type has been replaced with service accounts. Users from previous API versions are equivalent to service accounts.\n- Adding, listing and removing users from a group has been replaced by equivalent operations for service accounts.\n- Retrieve project returns a single object instead of a list.\n- API keys endpoints for list/create rename `userId` attribute to `serviceAccountId`.\n\n#### Removed\n\n- List and create groups no longer use the `permissions` and `source` attributes.\n\n### 3D\n\n#### Added\n\n- New 3D API lets you upload and process 3D models. Supported format: FBX.\n- Ability to create and maintain multiple revisions for the 3D models.\n- API for mapping relationships between 3D model nodes and asset hierarchy.\n" + "description": "This article documents all notable changes to the Cognite Data Fusion (CDF) API v1.\n\n\n\n## 2024-10-11\n### Organizations and Projects\n#### Added\n- Allow non-admin users to list all projects in an organization.\n - `GET /api/v1/orgs/{orgId}/projects` can be called by all users of an organization.\n- Include `apiUrl` when listing projects in an organization.\n - `GET /api/v1/orgs/{orgId}/projects` will include `apiUrl` for each project.\n\n## 2024-09-31\n### Time Series API\n#### Added\n- Introduced support for time series managed by Data modeling in data point subscriptions.\n - `GET subscriptions/members` can contain members with `instanceId`.\n - `POST subscriptions` can be used to create subscriptions with an defined set of instance ids.\n - `POST subscriptions/update` can be used to add/remove/set the instance id time series members.\n\n\n## 2024-09-19\n### Contextualization / Vision\n#### Added\n- Support for Vision endpoints referencing files by data modeling instance IDs, as an alternative to ID and external ID. \n\n## 2024-09-14\n### Simulator integration API\n#### Added\n- The simulator integration API endpoints have now been promoted to public beta. The following is just a brief list of endpoints. Go to the Cognite API [reference documentation (beta)](https://api-docs.cognite.com/20230101-beta/tag/Simulators/) to view all endpoints and their functionalities.\n - `POST /simulators/*` to access the simulators API and list simulators enabled for the project\n - `POST /simulators/integrations/*` to list simulator connectors and their state\n - `POST /simulators/models/*` to create/list/remove simulator models and their revisions\n - `POST /simulators/routines/*` to create/list/remove simulator routines and their revisions\n - `POST /simulators/runs/*` to create/schedule simulation runs\n - `POST /simulators/logs/*` to access simulator logs\n\n## 2024-09-13\n### Contextualization / Engineering diagrams\n#### Added\n- Support for detecting tags in diagrams referencing files by data modelling instance ids as an alternative to id and externalId. \n\n## 2024-09-12\n### Files API\n#### Added\n- Add support for `ignoreUnknownIds` to the `files/delete` endpoint.\n\n### SAP Writeback\n#### Added\n- SAP Writeback API (Beta)\n\n## 2024-09-10\n### Time Series API\n#### Added\n- Introduces support for Time Series managed by Data modeling.\n - `/timeseries/*` endpoints will return data modeling instance Id in time series objects where applicable.\n - `POST /timeseries/update` can be used to update properties of data modeling time series, but only fields that are not managed by data modeling.\n - `POST /timeseries/byids` can be used to retrieve time series by instance Id.\n - `POST /timeseries/list` and `POST /timeseries/aggregate` support advanced filters with `instanceId.space` and `instanceId.externalId` fields. (No changes to regular filters)\n - `POST /timeseries/data/*` can be used with instance Id to ingest/delete/query data points.\n - `POST /timeseries/synthetic/query` can lookup by instance Id.\n\n### Subscriptions API\n#### Added\n- Subscription filters support advanced filters with `instanceId.space` and `instanceId.externalId` fields.\n- List subscription members will show time series instance Ids, if available.\n\n## 2024-09-02\n### Files API\n#### Added\n- Introduces support for Files managed by Data modeling, which means following endpoints will allow specifying instance Id\n - `POST /files/uploadlink` to get upload links for files\n - `POST /files/multiuploadlink` to get multipart upload link for files\n - `POST /files/completemultipartupload` to complete a multipart file upload\n - `POST /files/downloadlink` to get download links for files\n - `GET /files/icon` to get an image representation of a file\n - `POST /files/byids` to retrieve metadata information about multiple specific files\n - `POST /files/update` to updates the information for the files\n\n## 2024-08-23\n### Data Workflows\n#### Added\n- subworkflow task: add support for referencing other workflow versions to run as part of a workflow\n\n## 2024-08-20\n### Data Workflows\n#### Added\n- Introduces the trigger resource for Data Workflows, which adds support for scheduling the execution of workflows and the management thereof.\n - `POST /workflows/triggers` to create a UNIX cron trigger for a workflow\n - `GET /workflows/triggers` to list all triggers\n - `POST /workflows/triggers/delete` to delete a trigger\n - `GET /workflows/triggers/{triggerExternalId}/history` which keeps a ledger of when the trigger fired and if it successfully started a workflow or not.\n\n## 2024-07-18\n### Organizations and Projects\n#### Added\n- Selected endpoints are promoted from beta to v1 (all under https://auth.cognite.com; note that the routes are \n different from the beta routes, and that some request and response signatures have changed):\n - `GET /api/v1/orgs/{orgId}` to get organization info\n - `POST /api/v1/orgs/{orgId}/orgs` to create an organization\n - `POST /api/v1/orgs/{orgId}/delete` to delete an organization\n - `GET /api/v1/orgs/{orgId}/orgs` to list the child organizations of an organization\n - `POST /api/v1/orgs/{orgId}/projects` to create a project in an organization\n - `GET /api/v1/orgs/{orgId}/projects` to list the projects in an organization\n\n#### Deprecated\n- The six beta endpoints that have been published as new V1 endpoints (just above) are deprecated and will be removed in\n a future release.\n\n## 2024-06-24\n### Data Modeling\n\n#### Added\n- Support marking properties as immutable\n\n## 2024-06-17\n### Data Modeling\n\n#### Added\n- Support for creating properties of type `direct_relation[]`, allowing direct relations to point to multiple nodes.\n- /containers/inspect endpoint to retrieve information about which views map a container.\n- /instances/inspect endpoint to retrieve information about which containers an instance has data in.\n\n## 2024-06-13\n### Organizations and Projects\n#### Added\n- Projects API (Beta): Allow for parametrization of the initial admin group when creating a project.\n\n### Time Series\n#### Added\n- Time zone aware aggregate queries. Align aggregates with a given time zone. Also works with half-hour offsets like Asia/Kolkata (UTC+5:30). Takes DST transitions into account.\n- New `month` (mo) granularity.\n- Also applies to synthetic time series.\n\n## 2024-05-24\n### Organizations and Projects\n#### Added\n- Organizations API (Beta): create, list, and delete CDF organizations\n- Organizations API (Alpha): update CDF organizations\n- Projects API (Beta): create and list projects in CDF organizations\n\n### User profiles\n#### Added\n- Organization user profiles (Beta): list users in CDF organizations\n\n### Projects\n#### Removed\n- Removed the previous Projects API from public documentation, as those endpoints are available to Cognite and resellers\n only.\n\n## 2024-05-23\n\n### Time series\n\n#### Added\n- Beta support for time zone aware aggregate queries. Align aggregates with a given time zone. Also works with half-hour offsets like Asia/Kolkata (UTC+5:30). Takes DST transitions into account.\n- Beta support for new `month` (mo) granularity.\n- Also applies to synthetic time series.\n\n## 2024-05-02\n\n### Postgres gateway\n\n#### Added\n- Endpoints for managing PostgreSQL gateway \n\n## 2024-05-01\n\n### Time series\n\n#### Added\n\n- Added support for [status codes](https://developer.cognite.com/dev/concepts/resource_types/timeseries#data-point-quality-status-codes) for data points.\n\n## 2024-04-02\n\n### Groups\n\n#### Added\n\n- Introduce the option to manage members of a group through CDF instead of through external groups in the identity provider. This is done through the new `members` field on the group object. Members can either be explicitly enumerated or one declare a group to include all users accounts. The latter is useful if one wants all existing users and new users who joins a project to automatically receive certain capabilities.\n\n## 2024-03-19\n\n### Engineering diagrams (beta)\n\n#### Added\n- Beta endpoint for retrieving ocr data for a file per page.\n Currently, only files that have been run through diagram/detect will give any results.\n This may be up for change in the future.\n The endpoint replaces a previous playground endpoint which is no longer documented.\n\n## 2024-03-11\n\n### Default runtime in Cognite functions\n\n#### Changed\n- Default Python runtime in Cognite functions has been updated from Python 3.8 (py38) to Python 3.11 (py311) in response to the upcoming end of community support for Python 3.8 in October 14, 2024.\n\n## 2024-03-06\n\n### Files\n\n#### Updated\n- Files API rate and concurrency limits have been documented.\n -- Service layer request rate and concurrency limits added\n -- CRUD endpoints request rate, concurrency and items rate limits added\n -- Analytic endpoints request rate, concurrency rate limits added\n\n## 2024-02-29\n\n### Assets\n\n#### Updated\n- Assets API rate and concurrency limits have been documented.\n -- Service layer request rate and concurrency limits added\n -- CRUD endpoints request rate, concurrency and items rate limits added\n -- Analytic endpoints request rate, concurrency and items rate limits added\n\n## 2024-02-20\n\n### Data Modeling\n\n#### Added\n**Conversion between unit types for returned values during filter and query operations.**\n- Trigger conversion by setting the `targetUnit` by `externalId` or `unitSystemName` parameters for the data source in a query.\n- When using filters with unit conversion, the unit for filter value is determined by the corresponding property in the `source` object. When querying data in centimeters by setting `targetUnit` on a property in the `source`, the filter value for that property will also be considered to be in centimeters.\n- `typing` - `type.unit` on a property in a `typing` object is now always the same as the unit for the returned data.\n- Added `typing` to following endpoints:\n - query\n - sync\n - aggregate\n - search\n\n## 2024-02-19\n\n### Time series\n\n#### Added\n\n- Data point subscriptions reaches General Availability (GA).\n - Use the new [Data point subscriptions](https://developer.cognite.com/dev/concepts/data_point_subscriptions/)\n feature to configure a subscription to listen to changes in one or more\n time series (in ingestion order).\n The feature is intended to be used where data points consumers need to keep up to date with\n changes to one or more time series without the need to read the entire time series again.\n\n## 2024-02-08\n\n### Hosted Extractors\n\n#### Changed\n\n- `host` in kafka sources has been replaced with `bootstrapBrokers`, which is an array of objects with `host` and `port`.\n\n\n## 2024-02-01\n\n### Synthetic time series\n\n#### Added\n- Support for unit conversion by setting `targetUnit` or `targetUnitSystem` on time series or aggregates with a compatible `unitExternalId` field.\n\n\n## 2024-01-16\n\n### Sessions\n\n#### Added\n- Support for creating one-shot sessions by setting the `oneshotTokenExchange` flag. One-shot sessions are short-lived sessions that are not refreshed and do not require support for token exchange from the identity provider.\n\n## 2024-01-02\n\n### Data Modeling\n\n#### Added\n- Support for a `bySpace` flag on btree indexes and uniqueness constraints.\n\n\n## 2023-12-12\n\n### Data Modeling\n\n#### Added\n- **Units catalog support for container properties**: You can now specify a unit from [CDF units catalog](https://developer.cognite.com/dev/concepts/resource_types/units) on `float32` and `float64` properties in containers.\n\n\n## 2023-12-11\n\n### Time series\n\n#### Changed\n\n- Data point subscriptions [list data (beta)](https://api-docs.cognite.com/20230101-beta/tag/Data-point-subscriptions/operation/listSubscriptionData/) now supports _long polling_ through the `pollTimeoutSeconds` parameter. The request will be kept active for the specified number of seconds, or until new data is available, whichever comes first.\n\n## 2023-12-06\n\n### Time series\n\n#### Added\n- [Units catalog](https://developer.cognite.com/dev/concepts/resource_types/units) support to time series. This comes in addition to the existing free-text unit field.\n - [Create timeseries](https://docs.cognite.com/api#tag/Time-series/operation/postTimeSeries) with a unitExternalId.\n - [Update timeseries](https://docs.cognite.com/api#tag/Time-series/operation/alterTimeSeries) to add/remove unitExternalId.\n- Filter and aggregate time series by unitExternalId or unitQuantity (eg. \"volume\" or \"temperature\"). Both using regular filters and advanced filters.\n - [Filter time series](https://docs.cognite.com/api#tag/Time-series/operation/listTimeSeries).\n - [Aggregate time series](https://docs.cognite.com/api#tag/Time-series/operation/aggregateTimeSeries).\n - [Search time series](https://docs.cognite.com/api#tag/Time-series/operation/searchTimeSeries).\n- Added unit conversion support to [retrieve data points/aggregates](https://docs.cognite.com/api#tag/Time-series/operation/getMultiTimeSeriesDatapoints) and [retrieve latest](https://docs.cognite.com/api#tag/Time-series/operation/getLatest). Specify a _targetUnit_ or _targetUnitSystem_ to convert the data points or aggregates to a different unit, or to the default unit of a given unit system.\n\n## 2023-11-30\n\n### Hosted extractors\n\n#### Changed\n\n- Hosted extractors API (Beta)\n - Updates hosted extractor schema with tls certificate details hence users can now provide CA and authentication certificates for connection to MQTT brokers.\n - Now includes schema requirements for connection to Kafka brokers i.e. connection to and extraction from Kafka brokers to Cognie Data fusion is not possible.\n\n## 2023-11-21\n\n### Units Catalog\n\n#### Added\n\n- Added the [Units Catalog](https://docs.cognite.com/api#tag/Units) API. The Units Catalog is a collection of units of measurement and their conversion factors. The Units Catalog is used within Cognite Data Fusion to easily convert between different units and unit systems when retrieving Time Series and Data Models.\n\n## 2023-11-17\n\n### Documents\n\n#### Added\n\n- Added support for sorting in the `/documents/list` endpoint. It works exactly the same as the sorting\n in `/documents/search` except that you can not sort on search relevance.\n\n## 2023-11-08\n\n### Engineering diagrams\n\n#### Changed\n\n- Optional token mechanism for accessing detected results of engineering diagrams without read all access to assets.\n See [diagram/detect](https://api-docs.cognite.com/20230101/tag/Engineering-diagrams/operation/diagramDetect) for details.\n\n## 2023-10-23\n\n### Files\n\n#### Added\n\n- Added multipart upload endpoints for the files API. This enables upload of files larger than 5 GiB, in a uniform way for all CDF cloud environments.\n Optionally use parallel part upload, for greater upload speed.\n See the documentation for the new endpoints at:\n - [Upload multipart file](https://docs.cognite.com/api/20230101/#tag/Files/operation/initMultiPartUpload) and\n - [Complete multipart upload](https://docs.cognite.com/api/20230101/#tag/Files/operation/completeMultiPartUpload) endpoints.\n\n## 2023-10-17\n### Events\n#### Added\n- New and old but previously undocumented API rate and concurrency limits have been documented.\nOverrides have been specified for existing customers, so that the new limits would not affect them.\n - Service layer request rate and concurrency limits added.\n - CRUD endpoints request rate and concurrency and items rate limits added\n\n## 2023-10-10\n\n### Entity matching\n\n#### Added\n\n- Entity matching pipelines are now in v1. We resuscitated the old playground API and made some changes.\n We will keep the new v1 API in beta for the foreseeable future.\n\n### Vision (Contextualization)\n\n#### Added\n\n- New computer vision models (beta) are available in Vision extract service, including digital, dial and level gauge readers, valve state detection (open/closed) and model to segment objects in images.\n\n## 2023-10-05\n\n### Hosted extractors\n\n#### Added\n\n- Hosted extractors API (Beta)\n - Use the new [Hosted extractors](https://docs.cognite.com/cdf/integration/guides/extraction/hosted_extractors)\n feature to create simple streaming extractors running inside CDF, streaming data from sources available on the internet\n directly into CDF.\n Currently supports Azure Event Hub and MQTT. Support is planned for Kafka and REST APIs.\n\n## 2023-09-27\n\n### 3D\n\n#### Changed\n\n- If the 3d model processing is ongoing or has failed, the 3d api nodes endpoints will now return error code 400 with the response body \"Revision processing is not yet complete\" or \"Revision processing failed\" respectively.\n The previous behavior was to return an empty or partial items list in these cases.\n Before calling any 3d api nodes endpoints, clients should check that the model revision has \"status\":\"Done\".\n\n## 2023-08-25\n\n### Transformations\n\n#### Changed\n\n- Fixed wrong description for fields in \"transformations/update\" and \"/transformations/schedules/update\"\n\n## 2023-08-22\n\n### Functions\n\n#### Changed\n\n- Remove Functions runtime \"py37\".\n\n## 2023-08-22\n\n### Time series\n\n#### Added\n\n- Data point subscriptions (Beta)\n - Use the new [Data point subscriptions](https://developer.cognite.com/dev/concepts/data_point_subscriptions/)\n feature to configure a subscription to listen to changes in one or more\n time series (in ingestion order).\n The feature is intended to be used where data points consumers need to keep up to date with\n changes to one or more time series without the need to read the entire time series again. (Beta)\n\n## 2023-08-10\n\n### Time series\n\n#### Added\n\n- Advanced query language support reaches General Availability (GA).\n - Advanced search, filtering, and sorting capabilities in the [Filter time series](https://docs.cognite.com/api/20230101/#tag/Time-series/operation/listTimeSeries) endpoint.\n - Advanced aggregation capabilities in the [Aggregate time series](https://docs.cognite.com/api/20230101/#tag/Time-series/operation/aggregateTimeSeries) endpoint.\n\n### Sequences\n\n#### Added\n\n- Advanced query language support reaches General Availability (GA).\n - Advanced search, filtering, and sorting capabilities in the [Filter sequences](https://docs.cognite.com/api/20230101/#tag/Sequences/operation/advancedListSequences) endpoint.\n - Advanced aggregation capabilities in the [Aggregate sequences](https://docs.cognite.com/api/20230101/#tag/Sequences/operation/aggregateSequences) endpoint.\n\n## 2023-08-08\n\n### Assets\n\n#### Added\n\n- Advanced query language support reaches General Availability (GA).\n - Advanced search, filtering, and sorting capabilities in the [Filter assets](https://docs.cognite.com/api/20230101/#tag/Assets/operation/listAssets) endpoint.\n - Advanced aggregation capabilities in the [Aggregate assets](https://docs.cognite.com/api/20230101/#tag/Assets/operation/aggregateAssets) endpoint.\n\n### Events\n\n#### Added\n\n- Advanced query language support reaches General Availability (GA).\n - Advanced search, filtering, and sorting capabilities in the [Filter events](https://docs.cognite.com/api/20230101/#tag/Events/operation/advancedListEvents) endpoint.\n - Advanced aggregation capabilities in the [Aggregate events](https://docs.cognite.com/api/20230101/#tag/Events/operation/aggregateEvents) endpoint.\n\n### Documents\n\n#### Added\n\n- Advanced query language support reaches General Availability (GA).\n - Advanced aggregation capabilities in the [Aggregate documents](https://docs.cognite.com/api/20230101/#tag/Documents/operation/documentsAggregate) endpoint.\n\n## 2023-06-27\n\n### IAM (Identity and access management)\n\n#### Changed\n\n- Identity providers (IdP) are required to be compatible with the [OpenID Connect Discovery 1.0](https://openid.net/specs/openid-connect-discovery-1_0.html) standard, and compliance will now be enforced by the [Projects](tag/Projects) API.\n - The `oidcConfiguration.jwksUrl` and `oidcConfiguration.tokenUrl` can be entirely omitted when updating the OIDC configuration for a project.\n - The `oidcConfiguration.jwksUrl` and `oidcConfiguration.tokenUrl` are preserved for backwards compatibility of the API. However, if these are specified as part of the request body, the value must match excatly the values that are specified in the OpenID provider configuration document for the configured issuer (can be found at `https://{issuer-url}/.well-known/openid-configuration`). If the values does not match, the API will return an error message.\n\n- The `oidcConfiguration.skewMs` has been deprecated but remains part of the API for backwards compatibility. It can be omitted from the request. If included, it must always be set to `0`.\n\n- The `oidcConfiguration.isGroupCallbackEnabled` has been deprecated but remains part of the API for backwards compatibility. It can be omitted from the request.\n - For projects configured to use Azure Active Directory as the identity provider, if this value is specified in the request, it must always be set to `true`.\n\n## 2023-06-05\n\n### Data Modeling\n\n#### Added\n\n- Added support for an `autoCreateDirectRelations` option on the endpoint for ingesting instances.\nThis option lets the user specify whether to create missing target nodes of direct relations.\n\n#### Removed\n\n- Removed support for the deprecated per-item `sources` field on the `/instances/byids` endpoint.\n\n### Time series\n\n#### Added\n\n- Added advanced query language support (Beta).\n - Advanced search, filtering, and sorting capabilities in the [Filter time series](tag/Time-series/operation/listTimeSeries) endpoint.\n - Advanced aggregation capabilities in the [Aggregate time series](tag/Time-series/operation/aggregateTimeSeries) endpoint.\n\n### Sequences\n\n#### Added\n\n- Added advanced query language support (Beta).\n - Advanced search, filtering, and sorting capabilities in the [Filter sequences](tag/Sequences/operation/advancedListSequences) endpoint.\n - Advanced aggregation capabilities in the [Aggregate sequences](tag/Sequences/operation/aggregateSequences) endpoint.\n\n## 2023-05-19\n\n### Transformations\n\n#### Added\n\n- Adding support for data model centric and view centric schema.\n\n## 2023-04-24\n\n### Transformations\n\n#### Removed\n\n- Removing support for authentication via API keys when creating or updating transformations.\n\n## 2023-05-04\n\n### Annotations\n\n#### Added\n\n- Added `image.InstanceLink` and `diagrams.InstanceLink` annotation types to allow you to link from objects discovered in images and engineering diagrams to data model instances.\n\n## 2023-04-18\n\n### All resources\n\n#### Added\n\n- Added information about [Requests throttling](section/Requests-throttling).\n\n#### Changed\n\n- Updated the [Parallel retrieval](section/Parallel-retrieval) documentation.\n- Aligned endpoint naming within Assets, Data sets, Events, and Files.\n\n### Assets\n\n#### Added\n\n- Added advanced query language support (Beta).\n - Advanced search, filtering, and sorting capabilities in the [Filter assets](https://docs.cognite.com/api/20230101-beta/#tag/Assets/operation/listAssets) endpoint.\n - Advanced aggregation capabilities in the [Aggregate assets](https://docs.cognite.com/api/20230101-beta/#tag/Assets/operation/aggregateAssets) endpoint.\n\n### Events\n\n#### Added\n\n- Added advanced query language support (Beta).\n - Advanced search, filtering, and sorting capabilities in the [Filter events](https://docs.cognite.com/api/20230101-beta/#tag/Events/operation/advancedListEvents) endpoint.\n - Advanced aggregation capabilities in the [Aggregate events](https://docs.cognite.com/api/20230101-beta/#tag/Events/operation/aggregateEvents) endpoint.\n\n### Documents\n\n#### Added\n\n- Added advanced query language support (Beta).\n - Advanced aggregation capabilities in the [Aggregate documents](https://docs.cognite.com/api/20230101-beta/#tag/Documents/operation/documentsAggregate) endpoint.\n\n## 2023-04-12\n\n### Sessions\n\n#### Fixed\n\n- Fixed the API documentation for the request body of the [POST /projects/{project}/sessions/byids](tag/Sessions/operation/getSessionsByIds) endpoint.\nThe documentation incorrectly stated the request body schema as specifying the list of session IDs to retrieve, in the form `{\"items\": [42]}` - it should in fact be `{\"items\": [{\"id\": 42}]}`. The documentation has been updated to reflect this.\n\n- Fixed the API documentation for the response body of the [POST /projects/{project}/sessions/byids](tag/Sessions/operation/getSessionsByIds) endpoint.\nThe documentation incorrectly stated `nextCursor` and `previousCursor` fields as being returned from the response, which was not the case, and these fields have now been removed from the API documentation.\n\n## 2023-04-04\n\n### Transformations\n\n#### Change\n\n- Transformations support new target types for view-centric data model instances.\n\n#### Added\n\n- Added target types `nodes` and `edges`.\n\n## 2023-03-06\n\n### Documents\n\n#### Change\n\n- Renamed \"approximateCardinality\" aggregate to \"cardinalityValues\" to unify the search spec in Cognite.\n- \"uniqueProperties\" aggregate no longer supports pagination. It returns unique properties (up to 10000) in the specified path. The results are sorted by frequency.\n\n#### Added\n\n- Added \"allUniqueProperties\" aggregate that returns all unique properties. The response contains a cursor that can be used to fetch all pages of data.\n\n## 2023-02-03\n\n### Seismic\n\n#### Added\n\n- Batch downloading of seismics as a ZIP archive is now an experimental v1 endpoint. A user requires the experimental ACL to use this endpoint, and any other ACLs and scopes to read the downloadable seismics.\n\n#### Fixed\n\n- The documentation for downloading seismics as SEG-Y files is part of v1. The API documentation didn't reflect that the endpoint had been promoted to version 1.\n\n## 2023-02-07\n\n### Documents\n\n#### Added\n\n- Added `highlight` field in the `search` endpoint to indicate whether matches in search results should be highlighted.\n\n## 2023-01-18\n\n### 3D\n\n#### Added\n\n- Added support for using names filter in list nodes endpoint.\n\n## 2023-01-17\n\n### Authentication\n\n#### Removed\n\nWe've removed authentication via CDF service accounts and API keys, and user sign-in via `/login`.\n\n### 3D\n\n#### Added\n\n- Added support for storing translation and scale for model revision.\n\n## 2023-01-12\n\n### Documents\n\n#### Added\n\n- Added support for approximateCardinality aggregate.\n\n## 2023-01-10\n\n### Documents\n\n#### Added\n\n- Added the search leaf filter, to allow filtering by searching through specified properties.\n\n## 2023-01-09\n\n### Documents\n\n#### Added\n\n- Added the uniqueProperties aggregation, which can be used to find all the metadata keys in use.\n\n## 2023-01-06\n\n### Documents\n\n#### Added\n\n- Added inAssetSubtree filter to filter documents that have a related asset in a subtree rooted at any of the specified IDs.\n\n## 2023-01-02\n\n### Documents\n\n#### Added\n\n- Added advanced filters for metadata (prefix, in, equals)\n\n## 2022-12-06\n\n### 3D\n\n#### Added\n\n- Added get3DNodesById endpoint to be able to fetch 3D nodes mapped to an asset.\n\n## 2022-12-16\n\n### Time series\n\n#### Changed\n\n- Timestamps of data points may now be as large as 4102444799999 (23:59:59.999, December 31, 2099). The previous limit was the year 2050.\n\n## 2022-11-29\n\n### Events\n\n#### Added\n\n- Added `nulls` field to the sort property specification\n\n## 2022-11-17\n\n### Time series\n\n#### Added\n\n- Added `nextCursor` field to [Retrieve data points](tag/Time-series/operation/getMultiTimeSeriesDatapoints), to support cursor pagination\n\n## 2022-10-14\n\n### Geospatial\n\n#### Added\n\n- Added the [POST /projects/{project}/geospatial/compute](tag/Geospatial/operation/compute) endpoint.\n\n## 2022-10-11\n\n### Transformations\n\n#### Added\n\n- Added capability to run a transformation with Nonce credentials provided through the Run endpoint.\n\n## 2022-10-06\n\n### IAM (Identity and access management)\n\n#### Added\n\n- Added the [POST /projects/{project}/sessions/byids](tag/Sessions/operation/getSessionsByIds) endpoint.\n\n## 2022-09-09\n\n### Vision (Contextualization)\n\n#### Added\n\n- Move Vision extract service from playground to V1.\n\n## 2022-08-12\n\n### Time series\n\n#### Changed\n\n- Updated datapoints timestamp range from 1971 - 2050 to 1900 - 2050.\n Affected endpoints:\n - [Insert data points](tag//Time-series/operation/postMultiTimeSeriesDatapoints)\n - [Retrieve data points](tag//Time-series/operation/getMultiTimeSeriesDatapoints)\n - [Delete data points](tag//Time-series/operation/deleteDatapoints)\n - [Retrieve latest data point](tag//Time-series/operation/getLatest)\n - [Synthetic query](tag//Synthetic-Time-Series/operation/querySyntheticTimeseries)\n\n## 2022-07-21\n\n### Transformations\n\n#### Added\n\n- Added authentication using nonce for transformation's exisiting endpoints.\n\n## 2022-06-21\n\n### Annotations (Data organization)\n\n#### Added\n\n- Moved the annotation service from playground to v1.\n\n## 2022-07-07\n\n### Events\n\n#### Removed\n\n- End-of-life for [filter.rootAssetIds](tag/Events/operation/advancedListEvents) filtering attribute.\n\n## 2022-06-13\n\n### IAM (Identity and access management)\n\n#### Added\n\n- Added the [POST /projects/{project}/sessions/revoke](tag/Sessions/operation/revokeSessions) endpoint.\n\n## 2022-05-20\n\n### Documents\n\n#### Added\n\n- Added the `POST /documents/aggregate` endpoint. The endpoint allows you to count documents optionally grouped by a property and also to retrieve all unique values of a property.\n\n## 2022-05-12\n\n### Documents\n\n#### Added\n\n- Added the `POST /documents/list` endpoint. The endpoint allows you to iterate through all the documents in a project.\n- Added the `POST /documents/{documentId}/content` endpoint. The endpoint lets you download the entire extracted plain text of a document.\n\n## 2022-04-11\n\n### Documents\n\n#### Added\n\n- Added the [GET /documents/{documentId}/preview/image/pages/{pageNumber}](tag/Document-preview/operation/documentsPreviewImagePage) endpoint.\n- Added the [GET /documents/{documentId}/preview/pdf](tag/Document-preview/operation/documentsPreviewPdf) endpoint.\n- Added the [GET /documents/{documentId}/preview/pdf/temporarylink](tag/Document-preview/operation/documentsPreviewPdfTemporaryLink) endpoint.\n\n## 2022-03-15\n\n### Sequences\n\n#### Changed\n\n- Changed sequences column limits. Old limit of maximum total 200 columns limits is updated to maximum 400 total columns, maximum 400 numeric columns and maximum 200 string columns.\n\n## 2022-03-02\n\n### Sequences\n\n#### Added\n\n- Added the [POST /sequences/data/latest](tag/Sequences/operation/getLatestSequenceRow) endpoint.\n\n## 2022-02-08\n\n### Time series\n\n#### Changed\n\n- Marked `isStep` parameter to be editable (i.e. removed description stating it is not updatable) in [POST /timeseries/create](tag/Time-series/operation/postTimeSeries).\n\n#### Added\n\n- Added `isStep` parameter to the `TimeSeriesPatch` object used in [POST /timeseries/update](tag/Time-series/operation/alterTimeSeries)\n\n## 2022-02-07\n\n### Documents\n\n#### Added\n\n- The [POST /documents/search](tag/Documents/operation/documentsSearch) endpoint now supports pagination.\n\n## 2022-01-25\n\n### Documents\n\n#### Added\n\n- Added the [POST /documents/search](tag/Documents/operation/documentsSearch) endpoint.\n\n## 2022-01-24\n\n### Time series\n\n#### Added\n\n- Added optional `ignoreUnknownIds` parameter to [POST /sequences/delete](tag/Sequences/operation/deleteSequences). Setting this to true will prevent the operation from failing if one or more of the given sequences do not exist; instead, those given sequences that do exist will be deleted.\n\n## 2021-12-07\n\n### Transformations\n\n#### Added\n\n- New [Transformations](tag//Transformations) APIs to v1 to create,retrieve,list and delete transformations\n- New [Transformation Jobs](tag//Transformation-Jobs) APIs to v1 to retrieve and list transformation jobs or job metrics\n- New [Transformation Schedule](tag//Transformation-Schedules) APIs to v1 to manage schedules of transformations\n- New [Transformation Notifications](tag//Transformation-Notifications) APIs to v1 to manage notifications from transformation job\n\n## 2021-11-22\n\n### Contextualization\n\n#### Added\n\n- Added [diagram detect](tag/Engineering-diagrams/operation/diagramDetect) endpoint to v1 to detect annotations in engineering diagrams\n- Added [diagram detect results](tag/Engineering-diagrams/operation/diagramDetectResults) endpoint to v1 to get the results from an engineering diagram detect job\n- Added [diagram convert](tag/Engineering-diagrams/operation/diagramConvert) endpoint to v1 to create interactive engineering diagrams in SVG format with highlighted annotations\n- Added [diagram convert results](tag/Engineering-diagrams/operation/diagramConvertResults) endpoint to v1 to get the results for a job converting engineering diagrams to SVGs\n\n## 2021-11-17\n\n### 3D\n\n#### Added\n\n- Added `dataSetId` support to 3D models enabling data access scoping of 3D data\n\n## 2021-10-13\n\n### Raw\n\n#### Changed\n\n- To align with Microsoft Azure clusters, table and database names are now sensitive to trailing spaces also in Google Cloud Platform clusters.\n\n## 2021-10-05\n\n### Extraction Pipelines\n\n#### Added\n\n- New [Extraction Pipelines](tag//Extraction-Pipelines) resource to document extractors and monitor the status of data ingestion to make sure reliable and trustworthy data are flowing into the CDF data sets.\n- API endpoints for creating, managing, and deleting extraction pipelines. Capture common attributes around extractors such as owners, contacts, schedule, destination RAW databases, and data set. Document structured metadata in the form of key-value attributes as well unstructured `documentation` attribute that supports Markdown (rendered as Markdown in Fusion).\n- Extraction Pipelines Runs are CDF objects to store statuses related to an extraction pipeline. The supported statuses are: `success`, `failure` and `seen`. They enable extractor developers to report status and error message after ingesting data. As well enables for reporting heartbeat through `seen` status by the extractor to easily identify issues related to crushed applications and scheduling issues.\n\n## 2021-09-28\n\n### Sequences\n\n#### Added\n\n- Added `partition` parameter to the [GET /sequences](tag/Sequences/operation/listSequences) endpoint to support [parallel retrieval](section/Parallel-retrieval).\n- [POST /sequences/list](tag/Sequences/operation/advancedListSequences) now supports [parallel retrieval](section/Parallel-retrieval).\n\n### Time series\n\n#### Added\n\n- Added `partition` parameter to the [GET /timeseries](tag/Time-series/operation/getTimeSeries) endpoint to support [parallel retrieval](section/Parallel-retrieval).\n\n## 2021-08-18\n\n### IAM (Identity and access management)\n\n#### Added\n\nAdded sessions to [v1](tag//Sessions). Sessions let you securely delegate access to CDF resources for CDF services (such as Functions) by an external principal and for an extended time.\n\n## 2021-08-12\n\n### Relationships\n\n#### Added\n\n- Relationships now support [Parallel Retrieval](section/Parallel-retrieval)\n\n## 2021-07-01\n\n### 3D\n\n#### Added\n\n- Added filter3dNodes endpoint to allow for more advanced filtering on node metadata\n\n## 2021-06-29\n\n### Labels\n\n#### Added\n\n- [Dataset scoping](tag/Labels/operation/listLabels) based on `dataSetIds`.\n\n## 2021-06-08\n\n### Sequences\n\n#### Added\n\n- Added [syntax for updating columns](tag/Sequences/operation/updateSequences) of existing sequences. Can `remove` columns, `modify` existing columns, and `add` new columns as well.\n\n## 2021-06-01\n\n### Assets\n\n#### Added\n\n- Added labels replace (set) method for [assets update](tag/Assets/operation/updateAssets).\n\n## 2021-04-28\n\n### Time series\n\n#### Changed granularity limits on hour aggreagates\n\nYou can now ask for a [granularity](https://docs.cognite.com/dev/concepts/aggregation/#granularity)\nof up to 100000 hours (previously 48 hours), both in normal aggregates and in synthetic time series.\n\n## 2021-04-12\n\n### IAM (Identity and access management)\n\n#### Added\n\n- Added a [projects list](tag/Projects/operation/listProjects) endpoint to v1\n- Added a [token inspection](tag/Token/operation/inspectToken) endpoint to v1\n\n## 2021-04-06\n\n### Authentication\n\n#### Deprecated\n\nWe are deprecating authentication via CDF service accounts and API keys, and user sign-in via `/login`, in favor of registering applications and services with your IdP (identity provider) and [using OpenID Connect](https://docs.cognite.com/cdf/access/) and the IdP framework to manage CDF access securely.\n\nThe legacy authentication flow is available for customers using Cognite Data Fusion (CDF) on GCP until further notice. We strongly encourage customers to adopt [the new authentication flows](https://docs.cognite.com/cdf/access/) as soon as possible.\n\nThe following API endpoints are deprecated:\n\n- `/api/v1/projects/*/apikeys`\n- `/api/v1/projects/*/serviceaccounts`\n- `/login`\n- `/logout`\n- `/api/v1/projects/*/groups/serviceaccounts` \\*\n\n\\*only the sub-resources for listing, adding, and removing members of groups.\n\n## 2021-03-22\n\nCDF API 0.5, 0.6 reached their end-of-life after its initial deprecation announcement in Summer 2019.\n\n## 2021-03-10\n\n### 3D\n\n#### Added\n\n- Added `partition` parameter to the List 3D Nodes endpoint for supporting parallel requests.\n- Added `sortByNodeId` parameter to the List 3D Nodes endpoint, improving request latency in most cases if set to `true`.\n\n## 2021-02-26\n\n### Entity matching\n\n#### Fixed\n\n- Fixed a bug in the documentation for Entity matching. The (job) `status` shall be capitalized string.\n\n## 2020-12-22\n\n### Files\n\n#### Added\n\n- New field `fileType` inside `derivedFields` to refer to a pre-defined subset of MIME types.\n- New filter `fileType` inside `derivedFields` to find files with a pre-defined subset of MIME types.\n\n## 2020-10-20\n\n### Files\n\n#### Added\n\n- New field `geoLocation` to refer to the geographic location of the file.\n- New filter `geoLocation` to find files matching a certain geographic location.\n\nTo learn how to leverage new geoLocation features, [follow our guide](https://developer.cognite.com/dev/concepts/resource_types/files.html).\n\n## 2020-08-29\n\n### Files\n\n#### Added\n\n- New field `directory` referring to the directory in the source containing the file.\n- New filter `directoryPrefix` allows you to find Files matching a certain directory prefix.\n\n## 2020-08-05\n\n### Files\n\n#### Added\n\n- New field `labels` allows you to attach labels to Files upon creation or updating.\n- New filter `labels` allows you to find Files that have been annotated with specific labels.\n\n## 2020-07-08\n\n### IAM (Identity and access management)\n\n#### Added\n\n- New project field `applicationDomains`. If this field is set, users only sign in to the project through applications hosted on\n a whitelisted domain. [Read more](https://developer.cognite.com/dev/guides/iam/#application-domains).\n\n## 2020-07-01\n\n### Events\n\n#### Added\n\n- New aggregation [`uniqueValues`](tag/Events/operation/aggregateEvents) allows you to find different types, subtypes of events in your project.\n\n## 2020-06-29\n\n### Labels\n\n#### Added\n\n- New data organization resource: [labels](tag//Labels). Manage terms that you can use to annotate and group assets.\n\n### Assets\n\n#### Added\n\n- New filter `labels` allows you to find resources that have been annotated with specific labels.\n\n### Time series\n\n#### Added\n\n- Combine various input time series, constants and operators with on-the-fly [synthetic time series](https://developer.cognite.com/dev/concepts/resource_types/synthetic_timeseries.html).\n\n## 2020-04-28\n\n### Events\n\n#### Added\n\n- New filtering capabilities to find open events [`endTime=null`](tag/Events/operation/advancedListEvents).\n- New filtering capabilities to find all events intersecting a timespan using [activeAtTime](tag/Events/operation/advancedListEvents).\n\n## 2020-03-12\n\n### General\n\n#### Added\n\n- New data organization resource: [data sets](tag//Data-sets). Document and track data lineage, ensure data integrity, and allow 3rd parties to write their insights securely back to your Cognite Data Fusion (CDF) project.\n- New attribute `datasetId` introduced in assets, files, events, time series and sequences.\n- New filter `dataSetIds` allows you to narrow down results to resources containing `datasetId` by a list of ids or externalIds of a data set. Supported by assets, files, events, time series and sequences.\n- We have added a new aggregation endpoint for [time series](tag/Files/operation/aggregateFiles). With this endpoint, you can find out how many results in a tenant meet the criteria of a filter. We will expand this feature to add more aggregates than `count`.\n\n### Groups\n\n#### Added\n\n- Introduced a new capability: `datasetsAcl` for managing access to data set resources.\n- New scope `datasetScope` for assets, files, events, time series and sequences ACLs. Allows you to scope down access to resources contained within a specified set of data sets.\n\n## 2020-03-10\n\n### 3D\n\n#### Fixed\n\n- We fixed a bug in the documentation of [3D model revisions](tag/3D-Model-Revisions/operation/get3DNodesById). Applications should anticipate that 3D nodes may not have a bounding box.\n\n## 2020-02-25\n\n### Assets\n\n#### Added\n\n- We have added a new [aggregation endpoint](tag/Assets/operation/aggregateAssets) for assets. With this endpoint, you can find out how many assets in a tenant meet the criteria of a filter. We will expand this feature to add more aggregates than `count`.\n\n### Events\n\n#### Added\n\n- We have added a new [aggregation endpoint](tag/Events/operation/aggregateEvents) for events. With this endpoint, you can find out how many events in a tenant meet the criteria of a filter. We will expand this feature to add more aggregates than `count`.\n\n## 2020-02-12\n\n### Assets\n\n#### Added\n\n- We have added new aggregation properties: `depth` and `path`. You can use the properties in the filter and retrieve endpoints.\n\n## 2020-02-10\n\n### Assets\n\n#### Added\n\n- Added the property `parentExternalId` which is returned for all assets which have a parent with a defined `externalId`.\n\n## 2019-12-09\n\n### General\n\n#### Added\n\n- Added `assetSubtreeIds` as a parameter to filter, search, and list endpoints for all core resources. `assetSubtreeIds` allows you to specify assets that are subtree roots, and then only retrieve resources that are related to assets within those subtrees.\n\n## 2019-12-04\n\n### Assets\n\n#### Added\n\n- Added the ability to [filter](tag/Assets/operation/searchAssets) assets by parent external IDs.\n\n## 2019-11-18\n\n### Events\n\n#### Added\n\n- [Added the ability to filter events by the external ID of linked assets](tag/Events/operation/advancedListEvents)\n\n## 2019-11-12\n\n### Access control\n\n#### Removed\n\n- Groups can no longer be created with a permissions field in v0.5.\n\n## 2019-10-31\n\n### Assets\n\n#### Added\n\n- [Asset search](/api/v1/#operation/searchAssets) now has a `search.query` parameter. This uses an improved search algorithm that tries a wider range of variations of the input terms and gives much better relevancy ranking than the existing `search.name` and `search.description` fields.\n\n### Time Series\n\n#### Changed\n\n- The `search.query` parameter for [time series search](/api/v1/#operation/searchTimeSeries) now uses an improved search algorithm that tries a wider range of variations of the input terms, and gives much better relevancy ranking.\n\n## 2019-10-23\n\n### Files\n\n#### Added\n\n- Added support for updating the `mimeType` for existing files in files/update requests.\n\n## 2019-10-18\n\n### Time Series\n\n#### Added\n\n- Time series expanded their filtering capabilities with new `Filter time series` endpoint, allowing for additional filtering by:\n\n - Name\n - Unit\n - Type of time series: string or step series\n - Metadata objects\n - ExternalId prefix filtering\n - Create and last updated time ranges\n\n Endpoint in addition support pagination and partitioning. Check out detailed API documentation [here](/api/v1/#operation/listTimeSeries).\n\n## 2019-10-16\n\n### Events\n\n#### Added\n\n- [Added the ability to sort events on startTime, endTime, createdTime, and lastUpdatedTime](tag/Events/operation/advancedListEvents)\n\n## 2019-10-02\n\n### Sequences\n\n#### Added\n\n- Introducing the new **sequences** core resource type that lets you store numerically indexed multi-column rows of data. Connect your sequences to physical assets and to their source systems through `externalId` and metadata support. Read more [here](https://developer.cognite.com/dev/concepts/resource_types/sequences.html).\n\n## 2019-09-30\n\n### 3D\n\n#### Added\n\n- Added endpoint to get multiple nodes for a 3D model by their IDs.\n- Added endpoint to get asset mappings for multiple node IDs or asset IDs.\n\n## 2019-09-23\n\n### Files\n\n#### Added\n\n- Added support for filter on `rootAssetIds` in files GET /files (using query parameter) and POST /files/list (in request body).\n\n## 2019-09-16\n\n### Assets and Events\n\n#### Added\n\n- Added support for `partition` in `/assets` and `/events` to support parallel retrieval. See guide for usage [here](./concepts/pagination)\n\n## 2019-08-22\n\n### 3D\n\n#### Added\n\n- Added the query parameter `intersectsBoundingBox` to the list asset mappings endpoint. The parameter filters asset mappings to the assets where the bounding box intersects (or is contained within) the specified bounding box.\n\n## 2019-08-21\n\n### Files\n\n#### Added\n\n- Added support for sourceCreatedTime and sourceModifiedTime fields in files v1 endpoints.\n\n### Assets\n\n#### Added\n\n- Allow the parent asset ID to be updated. The root asset ID must be preserved, and you can not convert a non-root asset to a root asset or vice versa.\n- Support for ignoreUnknownIds when deleting assets.\n\n## 2019-08-15\n\n### 3D\n\n#### Added\n\n- Properties field for 3D nodes, extracted from uploaded 3D files.\n- Ability to filter nodes with a specific set of properties.\n\n## 2019-07-24\n\n### Files\n\n#### Changed\n\n- Allow lookup of names with length up to 256 characters (was 50) for GET /files and POST /files/search operations.\n- Allow creating and retrieving files with mimeType length up to 256 characters (was 64).\n\n## 2019-07-15\n\n### Time series\n\n#### Added\n\n- Added query parameter `rootAssetIds` to list time series endpoint. Returns time series that are linked to an asset that has one of the root assets as an ancestor.\n\n## 2019-07-11\n\nList of changes for initial API v1 release in comparison to previous version - API 0.5\n\n### General\n\n#### Added\n\n- Support for `externalId` added across resource types. `externalId` lets you define a unique ID for a data object. Learn more: [External IDs](https://developer.cognite.com/dev/concepts/external_id.html)\n- `externalIdPrefix` added as a parameter to the list events, assets and files operations.\n- Richer filtering on the list assets, files and events operations.\n- Search, list and filter operations for assets, events and files now support filtering on source and metadata field values.\n\n#### Changed\n\n- Core resources standardize on HTTP methods and URI naming for common operations such as search, partial updates, delete, list and filter\n- API responses are no longer wrapped in a top level `data` object.\n- Standardized pagination across resources through `limit`, `cursor` and `nextCursor` parameters.\n- The `limit` parameter no longer implicitly rounds down requested page size to maximum page size.\n- Standardized error responses and codes across all resources. Errors across CDF can be parsed into a single model.\n- Overall improvements to reference documentation. Including documented input constraints, required fields, individual attribute descriptions.\n\n#### Removed\n\n- The `sourceId` field has been removed from resources. Use `externalId` instead of `sourceId`+`source` to define unique IDs for data objects.\n- Sorting is removed from the search operations for files, assets, events and time series. Results are sorted by relevance.\n- `offset` and `previousCursor` parameters are no longer supported for pagination across resources.\n- Fetching an asset subtree is no longer supported by files, assets, events and time series.\n\n### Assets\n\n#### Added\n\n- Ability to select only root assets though new `root` filter.\n- Added the `rootId` field to specify the top element in an asset hierarchy.\n- Added the ability to filter by the root asset ID. This allows you to scope queries for one or many asset hierarchies.\n- List Assets allows for filtering assets belonging to set of root assets, specified by list of asset internal ids. New query parameter: `rootIds`.\n- Filter and Search Assets allows or filtering assets belonging to a set of root assets, specified by combination of internal and external asset identifiers. New body attribute: `rootIds`.\n\n#### Changed\n\n- Updating a single asset is no longer supported through a separate endpoint. Use the update multiple endpoint instead.\n- Delete assets by default removes only leaf assets (assets without children). New parameter 'recursive' allows for enabling recursive removal of the entire subtree of the asset pointed by ID (API 0.5 behaviour).\n\n#### Removed\n\n- Overwriting assets is no longer supported.\n- Filtering assets by their complete description is no longer supported.\n- Locating assets fuzzily by name has been removed. Instead, search for assets on the `name` property.\n- When searching assets, querying over both name and description in the same query is no longer supported.\n- The experimental query parameter `boostName` has been removed from the search for assets operation.\n- Removed the `path` and `depth` fields.\n\n### Events\n\n#### Added\n\n- Events can now be filtered on asset ID in combination with other filters.\n- New filter `rootAssetIds` allows for narrowing down events belonging only to list or specified root assets. Supported by Filter and Search API\n\n#### Removed\n\n- Events can no longer be filtered by empty description.\n- The 'dir' parameter has been removed from the search events operation.\n\n### Files\n\n#### Added\n\n- Filtering files by `assetIds` in list files operations now support multiple assets in the same request.\n\n#### Changed\n\n- Download file content has changed from HTTP GET to HTTP POST method.\n- We have renamed the `fileType` field to `mimeType`. The field now requires a MIME formatted string (e.g. `text/plain`).\n- We have renamed the `uploadedAt` field to `uploadedTime`.\n- Resumable is now the default behavior for file uploads.\n- Update metadata for single files is no longer supported by a separate operation. Instead, use the update multiple operation.\n\n#### Removed\n\n- Replace files metadata endpoint has been removed.\n- Directory has been removed as a property of files.\n- Updating the `name` or `mimeType` of a file through the update multiple files operation is no longer supported.\n- Query parameter for specifying the sort direction has been removed from list all files operations.\n\n### Raw\n\n#### Changed\n\n- Raw has changed structure to become resource-oriented. The URL structure has changed.\n- Recursively delete of tables and rows when deleting a database is now the default behavior without a control parameter.\n\n### Time series\n\n#### Added\n\n- Support for adding datapoints by `id` and `externalId` of time series. Adding datapoints to time series by `name` has been removed.\n- Add ability to update the new `externalId` attribute for time series.\n- Allow to set `externalId` during creation of time series. `ExternalId` requires uniqueness across time series.\n- Consolidate multiple APIs to allow adding datapoints into a single endpoint. Allows datapoints to be added to multiple time series at the same time.\n- Retrieve data points by using `id` and `externalId` of the time series.\n- Time series created through API v1 are not discoverable by API 0.3, 0.4, 0.5 and 0.6 by default. Introduce the option to enable this compatibility by setting new attribute - `legacyName` on time series creation. Value is required to be unique.\n\n#### Changed\n\n- Get latest datapoints has been reworked. Introduces support for `id` and `externalId` lookup as well retrieval for multiple time series within the same request.\n- Time series name is no longer limited by uniqueness. Note that time series (meta objects) created by API v1 will not be discoverable by older API versions.\n- Delete time series endpoint has been redesigned to allow deletion of multiple time series by `id` and `externalId`.\n- Delete single and multiple datapoints endpoint has been redesigned and consolidated into a single endpoint. New delete allows selection of multiple time series and time ranges by `id` and `externalId`. Selecting by `name` is no longer available.\n- Update multiple time series restructured to support lookup by `externalId`.\n- Retrieve time series by ID endpoint restructured adding the ability to get time series by `externalId`.\n- Set limit for data point value to min -1E100, max 1E100.\n\n#### Removed\n\n- Experimental feature for performing calculations across multiple time series (synthetic time series), function and alias attributes are no longer available.\n- The experimental query parameter `boostName` has been removed from search operation.\n- Short names for aggregate functions are no longer supported.\n- Ability to remove time series by `name` have been removed as names are no longer unique identifiers.\n- Select multiple time series and time ranges by `name` is no longer available.\n- The ability to update `isString` and `isStep` attributes is removed. The attributes are not intended to be modified after creation of time series.\n- The endpoint for updating single time series is removed. Use the update multiple time series endpoint instead.\n- Remove ability to overwrite time series object by `id`. Use the update multiple time series endpoint instead.\n- The ability to retrieve time series matching by `name` has been removed. Use `externalId` instead.\n- The ability to retrieve by `id` from a single time series has been removed. Use retrieve multiple datapoints for multiple time series instead.\n- The ability to retrieve time-aligned datapoints through \"dataframe\" API has been removed. Similar functionality is available through our supported SDKs.\n- The ability to add datapoints to time series by `name` has been removed.\n- The ability to look up by time series `name` has been removed.\n\n### IAM (Identity and access management)\n\n#### Added\n\n- The login status endpoint includes the ID of the API key making the request (new attribute: `apiKeyId`), if the request used an API key.\n\n#### Changed\n\n- The user resource type has been replaced with service accounts. Users from previous API versions are equivalent to service accounts.\n- Adding, listing and removing users from a group has been replaced by equivalent operations for service accounts.\n- Retrieve project returns a single object instead of a list.\n- API keys endpoints for list/create rename `userId` attribute to `serviceAccountId`.\n\n#### Removed\n\n- List and create groups no longer use the `permissions` and `source` attributes.\n\n### 3D\n\n#### Added\n\n- New 3D API lets you upload and process 3D models. Supported format: FBX.\n- Ability to create and maintain multiple revisions for the 3D models.\n- API for mapping relationships between 3D model nodes and asset hierarchy.\n" }, { "name": "Token", @@ -64087,7 +74861,7 @@ }, { "name": "Assets", - "description": "The assets resource type stores digital representations of objects or\ngroups of objects from the physical world. Assets are organized in hierarchies.\nFor example, a water pump asset can be a part of a subsystem asset on an\noil platform asset.\n\n## Rate and concurrency limits\n\nBoth the rate of requests (denoted as request per second, or ‘**rps**’) and the number of concurrent (parallel) requests are governed by limits, \nfor all CDF API endpoints. If a request exceeds one of the limits, \nit will be throttled with a `429: Too Many Requests` response. More on limit types \nand how to avoid being throttled is described \n[here](https://developer.cognite.com/dev/concepts/request_throttling/).\n\nLimits are defined at both the overall API service level, and on the API endpoints belonging to the service. \nSome types of requests consume more resources (compute, storage IO) than others, and where a service handles \nmultiple concurrent requests with varying resource consumption. \nFor example, ‘CRUD’ type requests (**C**reate, **R**etrieve, **R**equest ByIDs, **U**pdate and **D**elete) are far less resource \nintensive than ‘Analytical’ type requests (List, Search and Filter) and in addition, the most resource \nintensive Analytical endpoint of all, Aggregates, receives its own request budget within the overall Analytical request budget. \nThe version 1.0 limits for the overall API service and its constituent endpoints are illustrated in the diagram below. \nThese limits are subject to change, pending review of changing consumption patterns and resource availability over time:\n\n\"\n\n### Translating RPS into data speed\nA single request may retrieve up to 1000 items. In the context of Assets, 1 item = 1 asset record \nTherefore, the maximum theoretical data speed at the top API service level is 200,000 items per second for all consumers, \nand 150,000 for a single identity or client in a project.\n\n### Use of Partitions / Parallel Retrieval\nAs a general guidance, Parallel Retrieval is a technique that should be used where due to query complexity, retrieval of data in a \nsingle request session turns out to be slow. By parallelizing such requests, data retrieval performance can be tuned to meet the \nclient application needs. Parallel retrieval may also be used where retrieval of large sets of data is required, up to the \ncapacity limits defined for a given API service. For example (using the Assets API request budget):\n\n* A single request may retrieve up to 1000 items\n* Up to 23 requests per second may be issued for an analytical query (per identity), such as when using /list or /filter API endpoints\n* This provides a theoretical maximum of 23,000 items read per second per identity\n* The query complexity may result in it taking longer than 1s to read or write 1000 items in a single request\n* Therefore, it is appropriate to specify the query to retrieve a lower number of items per request, and retrieve more items in parallel, up to the theoretical maximum performance of 23,000 items per second.\n\n**Important Note:** \nParallel retrieval should be only used in situations where, due to query complexity, \na single request flow provides data retrieval speeds that are significantly less than the theoretical maximum. \nParallel retrieval does not act as a speed multiplier on optimally running queries. Regardless of the number \nof concurrent requests issued, the overall requests per second limit still applies. \nSo for example, a single request returning data at approximately 18,000 items per second will only \nbenefit from adding a second parallel request, the capacity of which goes somewhat wasted \nas only an additional 5,000 items per second will return before the request rate budget limit is reached." + "description": "The assets resource type stores digital representations of objects or\ngroups of objects from the physical world. Assets are organized in hierarchies.\nFor example, a water pump asset can be a part of a subsystem asset on an\noil platform asset.\n\n## Rate and concurrency limits\n\nBoth the rate of requests (denoted as request per second, or ‘**rps**’) and the number of concurrent (parallel) requests are governed by limits,\nfor all CDF API endpoints. If a request exceeds one of the limits,\nit will be throttled with a `429: Too Many Requests` response. More on limit types\nand how to avoid being throttled is described\n[here](https://developer.cognite.com/dev/concepts/request_throttling/).\n\nLimits are defined at both the overall API service level, and on the API endpoints belonging to the service.\\\nSome types of requests consume more resources (compute, storage IO) than others, and where a service handles\nmultiple concurrent requests with varying resource consumption.\nFor example, ‘CRUD’ type requests (**C**reate, **R**etrieve, **R**equest ByIDs, **U**pdate and **D**elete) are far less resource\nintensive than ‘Analytical’ type requests (List, Search and Filter) and in addition, the most resource\nintensive Analytical endpoint of all, Aggregates, receives its own request budget within the overall Analytical request budget.\\\nThe version 1.0 limits for the overall API service and its constituent endpoints are illustrated in the diagram below.\\\nThese limits are subject to change, pending review of changing consumption patterns and resource availability over time:\n\n\"\n\n### Translating RPS into data speed\nA single request may retrieve up to 1000 items. In the context of Assets, 1 item = 1 asset record\\\nTherefore, the maximum theoretical data speed at the top API service level is 200,000 items per second for all consumers,\nand 150,000 for a single identity or client in a project.\n\n### Use of Partitions / Parallel Retrieval\nAs a general guidance, Parallel Retrieval is a technique that should be used where due to query complexity, retrieval of data in a\nsingle request session turns out to be slow. By parallelizing such requests, data retrieval performance can be tuned to meet the\nclient application needs. Parallel retrieval may also be used where retrieval of large sets of data is required, up to the\ncapacity limits defined for a given API service. For example (using the Assets API request budget):\n\n* A single request may retrieve up to 1000 items\n* Up to 23 requests per second may be issued for an analytical query (per identity), such as when using /list or /filter API endpoints\n* This provides a theoretical maximum of 23,000 items read per second per identity\n* The query complexity may result in it taking longer than 1s to read or write 1000 items in a single request\n* Therefore, it is appropriate to specify the query to retrieve a lower number of items per request, and retrieve more items in parallel, up to the theoretical maximum performance of 23,000 items per second.\n\n**Important Note:**\nParallel retrieval should be only used in situations where, due to query complexity,\na single request flow provides data retrieval speeds that are significantly less than the theoretical maximum.\\\nParallel retrieval does not act as a speed multiplier on optimally running queries. Regardless of the number\nof concurrent requests issued, the overall requests per second limit still applies.\\\nSo for example, a single request returning data at approximately 18,000 items per second will only\nbenefit from adding a second parallel request, the capacity of which goes somewhat wasted\nas only an additional 5,000 items per second will return before the request rate budget limit is reached." }, { "name": "Data Modeling", @@ -64095,7 +74869,7 @@ }, { "name": "Events", - "description": "Events objects store complex information about multiple assets over a time period. \nTypical types of events that would be stored in this service might include Alarms, Process Data, and Logs. \nFor the storage of low volume, manually generated, schedulable activities (such as maintenance schedules, \nwork orders or other ‘appointment’ type activities, the Data Modelling service is now recommended.\n\n#### Important Note: \nEvents and Time Series are somewhat closely related in that both are high volume types of data, \ncapable of recording data in microsecond resolutions. However, Events is not recommended as a Time Series store, \nsuch as where the data flow is from a single instance of sensors (i.e. temperature, pressure, voltage), \nsimulators or state machines (on, off, disconnected, etc). \nTime Series offers very low latency read and write performance, as well as specialised filters and aggregations that \nare tailored to the analysis of time series data.\n\nAn event’s time period is defined by a start time and end time, both millisecond timestamps since the UNIX epoch. \nThe timestamps can be in the future. In addition, events can have a text description as well as arbitrary metadata and properties. \nWhen storing event information in metadata, it should be considered that all data is stored as string format.\n\n**Caveats:** \nDue to the eventually consistent nature of Asset IDs stored in Events, \nit should be noted that Asset ID references obtained from the Events API may \noccasionally be invalid (such as if an Asset ID is deleted, \nbut the reference to that ID remains in the Event record for a time).\n\nAsset references obtained from an event - through asset ids - may be\ninvalid, simply by the non-transactional nature of HTTP.\nThey are maintained in an eventual consistent manner.\n\n## Rate and concurrency limits\n\nBoth the rate of requests (denoted as request per second, or ‘**rps**’) and the number of concurrent (parallel) requests are governed by limits, \nfor all CDF API endpoints. If a request exceeds one of the limits, \nit will be throttled with a `429: Too Many Requests` response. More on limit types \nand how to avoid being throttled is described \n[here](https://developer.cognite.com/dev/concepts/request_throttling/).\n\nLimits are defined at both the overall API service level, and on the API endpoints belonging to the service. \nSome types of requests consume more resources (compute, storage IO) than others, and where a service handles \nmultiple concurrent requests with varying resource consumption. \nFor example, ‘CRUD’ type requests (**C**reate, **R**etrieve, **R**equest ByIDs, **U**pdate and **D**elete) are far less resource \nintensive than ‘Analytical’ type requests (List, Search and Filter) and in addition, the most resource \nintensive Analytical endpoint of all, Aggregates, receives its own request budget within the overall Analytical request budget. \nThe version 1.0 limits for the overall API service and its constituent endpoints are illustrated in the diagram below. \nThese limits are subject to change, pending review of changing consumption patterns and resource availability over time:\n\n\"\n\n### Translating RPS into data speed\nA single request may retrieve up to 1000 items. In the context of Events, 1 item = 1 event record \nTherefore, the maximum theoretical data speed at the top API service level is 200,000 items per second for all consumers, \nand 150,000 for a single identity or client in a project.\n\n### Use of Partitions / Parallel Retrieval\nAs a general guidance, Parallel Retrieval is a technique that should be used where due to query complexity, retrieval of data in a \nsingle request session turns out to be slow. By parallelizing such requests, data retrieval performance can be tuned to meet the \nclient application needs. Parallel retrieval may also be used where retrieval of large sets of data is required, up to the \ncapacity limits defined for a given API service. For example (using the Events API request budget):\n\n* A single request may retrieve up to 1000 items\n* Up to 23 requests per second may be issued for an analytical query (per identity), such as when using /list or /filter API endpoints\n* This provides a theoretical maximum of 23,000 items read per second per identity\n* The query complexity may result in it taking longer than 1s to read or write 1000 items in a single request\n* Therefore, it is appropriate to specify the query to retrieve a lower number of items per request, and retrieve more items in parallel, up to the theoretical maximum performance of 23,000 items per second.\n\n**Important Note:** \nParallel retrieval should be only used in situations where, due to query complexity, \na single request flow provides data retrieval speeds that are significantly less than the theoretical maximum. \nParallel retrieval does not act as a speed multiplier on optimally running queries. Regardless of the number \nof concurrent requests issued, the overall requests per second limit still applies. \nSo for example, a single request returning data at approximately 18,000 items per second will only \nbenefit from adding a second parallel request, the capacity of which goes somewhat wasted \nas only an additional 5,000 items per second will return before the request rate budget limit is reached." + "description": "Events objects store complex information about multiple assets over a time period.\nTypical types of events that would be stored in this service might include Alarms, Process Data, and Logs.\\\nFor the storage of low volume, manually generated, schedulable activities (such as maintenance schedules,\nwork orders or other ‘appointment’ type activities, the Data Modelling service is now recommended.\n\n#### Important Note:\nEvents and Time Series are somewhat closely related in that both are high volume types of data,\ncapable of recording data in microsecond resolutions. However, Events is not recommended as a Time Series store,\nsuch as where the data flow is from a single instance of sensors (i.e. temperature, pressure, voltage),\nsimulators or state machines (on, off, disconnected, etc).\\\nTime Series offers very low latency read and write performance, as well as specialised filters and aggregations that\nare tailored to the analysis of time series data.\n\nAn event’s time period is defined by a start time and end time, both millisecond timestamps since the UNIX epoch.\nThe timestamps can be in the future. In addition, events can have a text description as well as arbitrary metadata and properties.\\\nWhen storing event information in metadata, it should be considered that all data is stored as string format.\n\n#### Note:\nIn Events API, timestamps are treated as strings when added to\nmetadata fields and aren’t converted to the user’s local time zone.\n\n**Caveats:**\\\nDue to the eventually consistent nature of Asset IDs stored in Events,\nit should be noted that Asset ID references obtained from the Events API may\noccasionally be invalid (such as if an Asset ID is deleted,\nbut the reference to that ID remains in the Event record for a time).\n\nAsset references obtained from an event - through asset ids - may be\ninvalid, simply by the non-transactional nature of HTTP.\nThey are maintained in an eventual consistent manner.\n\n## Rate and concurrency limits\n\nBoth the rate of requests (denoted as request per second, or ‘**rps**’) and the number of concurrent (parallel) requests are governed by limits,\nfor all CDF API endpoints. If a request exceeds one of the limits,\nit will be throttled with a `429: Too Many Requests` response. More on limit types\nand how to avoid being throttled is described\n[here](https://developer.cognite.com/dev/concepts/request_throttling/).\n\nLimits are defined at both the overall API service level, and on the API endpoints belonging to the service.\\\nSome types of requests consume more resources (compute, storage IO) than others, and where a service handles\nmultiple concurrent requests with varying resource consumption.\nFor example, ‘CRUD’ type requests (**C**reate, **R**etrieve, **R**equest ByIDs, **U**pdate and **D**elete) are far less resource\nintensive than ‘Analytical’ type requests (List, Search and Filter) and in addition, the most resource\nintensive Analytical endpoint of all, Aggregates, receives its own request budget within the overall Analytical request budget.\\\nThe version 1.0 limits for the overall API service and its constituent endpoints are illustrated in the diagram below.\\\nThese limits are subject to change, pending review of changing consumption patterns and resource availability over time:\n\n\"\n\n### Translating RPS into data speed\nA single request may retrieve up to 1000 items. In the context of Events, 1 item = 1 event record\\\nTherefore, the maximum theoretical data speed at the top API service level is 200,000 items per second for all consumers,\nand 150,000 for a single identity or client in a project.\n\n### Use of Partitions / Parallel Retrieval\nAs a general guidance, Parallel Retrieval is a technique that should be used where due to query complexity, retrieval of data in a\nsingle request session turns out to be slow. By parallelizing such requests, data retrieval performance can be tuned to meet the\nclient application needs. Parallel retrieval may also be used where retrieval of large sets of data is required, up to the\ncapacity limits defined for a given API service. For example (using the Events API request budget):\n\n* A single request may retrieve up to 1000 items\n* Up to 23 requests per second may be issued for an analytical query (per identity), such as when using /list or /filter API endpoints\n* This provides a theoretical maximum of 23,000 items read per second per identity\n* The query complexity may result in it taking longer than 1s to read or write 1000 items in a single request\n* Therefore, it is appropriate to specify the query to retrieve a lower number of items per request, and retrieve more items in parallel, up to the theoretical maximum performance of 23,000 items per second.\n\n**Important Note:**\nParallel retrieval should be only used in situations where, due to query complexity,\na single request flow provides data retrieval speeds that are significantly less than the theoretical maximum.\\\nParallel retrieval does not act as a speed multiplier on optimally running queries. Regardless of the number\nof concurrent requests issued, the overall requests per second limit still applies.\\\nSo for example, a single request returning data at approximately 18,000 items per second will only\nbenefit from adding a second parallel request, the capacity of which goes somewhat wasted\nas only an additional 5,000 items per second will return before the request rate budget limit is reached." }, { "name": "Files", @@ -64123,15 +74897,15 @@ }, { "name": "Data point subscriptions", - "description": "A data point subscription is a way to listen to changes to time series data points, in ingestion order.\n\nA single subscription can listen to many time series, and a time series can be part of many subscriptions.\n\nYou listen to subscriptions by calling the “list subscription data“ endpoint. It will return\na list of data point upserts and deleted ranges, together with a cursor to retrieve the next\nbatch of updates. Updates written since the creation of the subscription, up to 7 days ago, can be\nretrieved through the subscription.\n\nSubscriptions can be defined explicitly through a list of time series external ids, or\nimplicitly through a filter. The filter is a subset of the advanced filter query in the regular\n“time series search“ endpoint.\n\nPartitions:\nSubscriptions can be further divided into a number of partitions, for the purpose of\nfetching subscription data in parallel. Each partition will return data in ingestion order,\nbut the order between partitions is not guaranteed.\n\nLimitations:\n- Each subscription can have at most 10000 time series\n- A time series can be part of at most 10 subscriptions\n- A project can have at most 1000 subscriptions, of which 100 filter subscriptions\n- Time series with security categories can not be shown in filter subscriptions\n- Time series without externalId cannot be added to non-filter subscriptions\n- The number of partitions cannot be changed after creation\n\nAccess control: You need READ access to subscriptions ACL to read/list\nsubscriptions or list data, and you need WRITE access to create/update/delete subscriptions.\nFurthermore, you need READ access to the time series you want to get updates from.\nFor filter subscriptions, you either need READ access to all time series, or the filter must\nbe restricted according to your access rights (e.g. by filtering on specific data set IDs).\n\nSubscriptions can have data sets that allow for more granular access\ncontrol. The data set on a subscription does not influence the data\nstream, but allows you to restrict who can read/update the subscription.\n\nExample capabilities:\n```\n[\n {\"timeSeriesAcl\":{\"actions\":[\"READ\"], \"scope\":{\"all\":{}}}},\n {\"timeSeriesSubscriptionsAcl\":{\"actions\":[\"WRITE\", \"READ\"], \"scope\":{\"all\":{}}}}\n]\n```" + "description": "A data point subscription is a way to listen to changes to time series data points, in ingestion order.\n\nA single subscription can listen to many time series, and a time series can be part of many subscriptions.\n\nYou listen to subscriptions by calling the “list subscription data“ endpoint. It will return\na list of data point upserts and deleted ranges, together with a cursor to retrieve the next\nbatch of updates. Updates written since the creation of the subscription, up to 7 days ago, can be\nretrieved through the subscription.\n\nSubscriptions can be defined explicitly through a list of time series external ids and\ninstance ids, or implicitly through a filter. The filter is a subset of the advanced filter\nquery in the regular “time series search“ endpoint.\n\nPartitions:\nSubscriptions can be further divided into a number of partitions, for the purpose of\nfetching subscription data in parallel. Each partition will return data in ingestion order,\nbut the order between partitions is not guaranteed.\n\nLimitations:\n- Each subscription can have at most 10000 time series.\n- A time series can be part of at most 10 subscriptions.\n- A project can have at most 1000 subscriptions, of which 100 are filter subscriptions.\n- Time series with security categories can not be shown in filter subscriptions.\n- Time series with neither external id nor instance id cannot be added to non-filter subscriptions.\n- The number of partitions cannot be changed after creation.\n\nAccess control:\nYou need READ access to subscriptions ACL to read/list\nsubscriptions or list data, and you need WRITE access to create/update/delete subscriptions.\nFurthermore, you need READ access to the time series you want to get updates from.\nFor filter subscriptions, you either need READ access to all time series, or the filter must\nbe restricted according to your access rights (e.g. by filtering on specific data set IDs).\n\nSubscriptions can have data sets that allow for more granular access\ncontrol. The data set on a subscription does not influence the data\nstream, but allows you to restrict who can read/update the subscription.\n\nExample capabilities:\n```\n[\n {\"timeSeriesAcl\":{\"actions\":[\"READ\"], \"scope\":{\"all\":{}}}},\n {\"timeSeriesSubscriptionsAcl\":{\"actions\":[\"WRITE\", \"READ\"], \"scope\":{\"all\":{}}}}\n]\n```" }, { "name": "Synthetic Time Series", - "description": "Synthetic Time Series (STS) is a way to combine various input time series, constants and operators, to create completely new time series.\n\nFor example can we use the expression `24 * TS{externalId='production/hour'}` to convert from hourly to daily production rates.\n\nBut STS is not limited to simple conversions.\n* We support combination of different time series `TS{id=123} + TS{externalId='hei'}`.\n* Functions of time series `sin(pow(TS{id=123}, 2))`.\n* Aggregations of time series `TS{id=123, aggregate='average', granularity='1h'}+TS{id=456}`\n* Convert time series with `unitExternalId` to another unit `TS{externalId='temp_c', targetUnit='temperature:deg_f'}`.\n\nTo learn more about synthetic time series please follow [our guide](https://developer.cognite.com/dev/concepts/resource_types/synthetic_timeseries.html)." + "description": "Synthetic Time Series (STS) is a way to combine various input time series, constants and operators, to create completely new time series.\n\nFor example can we use the expression `24 * TS{externalId='production/hour'}` to convert from hourly to daily production rates.\n\nBut STS is not limited to simple conversions.\n* We support combination of different time series `TS{id=123} + TS{externalId='hei'} / TS{space='data modeling space', externalId='dm id'}`.\n* Functions of time series `sin(pow(TS{id=123}, 2))`.\n* Aggregations of time series `TS{id=123, aggregate='average', granularity='1h'}+TS{id=456}`\n* Convert time series with `unitExternalId` to another unit `TS{externalId='temp_c', targetUnit='temperature:deg_f'}`.\n\nTo learn more about synthetic time series please follow [our guide](https://developer.cognite.com/dev/concepts/resource_types/synthetic_timeseries.html)." }, { "name": "Raw", - "description": "Manage data in the raw NoSQL database. \nEach project will have a variable number of raw databases, each of which will have a variable number of tables, each of which will have a variable number of key-value objects. \nOnly queries on key are supported through this API. \n\n### Request and concurrency limits\n\nBoth the rate of requests and the number of concurrent (parallel) requests are governed by limits, \nfor all CDF API endpoints. If a request exceeds one of the limits, \nit will be throttled with a `429: Too Many Requests` response. More on limit types \nand how to avoid being throttled is described \n[here](https://developer.cognite.com/dev/concepts/request_throttling/).\n\nThe limits for the Raw service are described in the table below. Note that under high load,\nsome deviation from the limits might occur for short periods of time as the service is scaling up.\nThe `/rows` endpoints for inserting and retrieving data are governed by specific data rate limits. \n\n| Limit | Per project | Per user (identity) |\n|-----------------------|-----------------------|---------------------|\n| Concurrency | 64 parallel requests | 48 parallel requests|\n| Data rate (retrieve) | 8.3 GB / 10 minutes | 6.6 GB / 10 minutes |\n| Data rate (insert) | 1.6 GB / 10 minutes | 1.3 GB / 10 minutes |" + "description": "Manage data in the raw NoSQL database.\nEach project will have a variable number of raw databases, each of which will have a variable number of tables, each of which will have a variable number of key-value objects.\nOnly queries on key are supported through this API.\\\n\n### Request and concurrency limits\n\nBoth the rate of requests and the number of concurrent (parallel) requests are governed by limits,\nfor all CDF API endpoints. If a request exceeds one of the limits,\nit will be throttled with a `429: Too Many Requests` response. More on limit types\nand how to avoid being throttled is described\n[here](https://developer.cognite.com/dev/concepts/request_throttling/).\n\nThe limits for the Raw service are described in the table below. Note that under high load,\nsome deviation from the limits might occur for short periods of time as the service is scaling up.\nThe `/rows` endpoints for inserting and retrieving data are governed by specific data rate limits.\n\n| Limit | Per project | Per user (identity) |\n|-----------------------|-----------------------|---------------------|\n| Concurrency | 64 parallel requests | 48 parallel requests|\n| Data rate (retrieve) | 8.3 GB / 10 minutes | 6.6 GB / 10 minutes |\n| Data rate (insert) | 1.6 GB / 10 minutes | 1.3 GB / 10 minutes |" }, { "name": "Groups", @@ -64166,7 +74940,7 @@ }, { "name": "Vision", - "description": "The Vision contextualization endpoints enable extraction of information from imagery data based on their visual content. For example, you can detect external ID or name of assets, detect and read value of gauges or identify common industrial objects in images. \n\nThis service has support for batch processing which enables processing of multiple image files via an asynchronous prediction request. A new contextualization job is triggered by sending a POST request to the service. The response of the POST request contains a job ID, which can then be used to make subsequent calls to check the status and retrieve the results of the job once it is completed." + "description": "The Vision contextualization endpoints enable extraction of information from imagery data based on their visual content. For example, you can detect external ID or name of assets, detect and read value of gauges or identify common industrial objects in images.\n\nThis service has support for batch processing which enables processing of multiple image files via an asynchronous prediction request. A new contextualization job is triggered by sending a POST request to the service. The response of the POST request contains a job ID, which can then be used to make subsequent calls to check the status and retrieve the results of the job once it is completed." }, { "name": "Documents", @@ -64202,7 +74976,7 @@ }, { "name": "Transformations", - "description": "Transformations enable users to use Spark SQL queries to transform data from the CDF staging area, RAW, into the CDF data model." + "description": "Transformations enable users to use Spark SQL queries to transform\ndata from the CDF staging area, RAW, into the CDF data model.\n\n### Concurrency limits\n\nThe number of concurrent (parallel) jobs are governed by limits. If a request exceeds one of the limits,\nthe job fails to run. This limitation also applies to scheduled transformations.\n\nThe limits for the transformation service are described in the table below. Note that under high load,\nsome deviation from the limits might occur for short periods as the service scales up.\n\n| Limit | Per project |\n|-----------------------|-----------------------|\n| Concurrency | 10 parallel jobs |" }, { "name": "Transformation Jobs", @@ -64234,11 +75008,11 @@ }, { "name": "User profiles", - "description": "User profiles is an authoritative source of core user profile information (email, \nname, job title, etc.) for principals based on data from the identity provider \nconfigured for the CDF project.\n\nUser profiles are first created (usually within a few seconds) when a principal issues \na request against a CDF API. We currently don't support automatic exchange of user identity\ninformation between the identity provider and CDF, but the profile data is updated regularly \nwith the latest data from the identity provider for the principals issuing requests against\na CDF API. \n\nNote that the user profile data is mutable, and any updates in the external identity \nprovider may also cause updates in this API. Therefore, you cannot use profile data, \nfor example a user's email, to uniquely identify a principal. The exception is the \n`userIdentifier` property which is _guaranteed_ to be immutable.\n" + "description": "User profiles is an authoritative source of core user profile information (email,\nname, job title, etc.) for principals based on data from the identity provider\nconfigured for the CDF project.\n\nUser profiles are first created (usually within a few seconds) when a principal issues\na request against a CDF API. We currently don't support automatic exchange of user identity\ninformation between the identity provider and CDF, but the profile data is updated regularly\nwith the latest data from the identity provider for the principals issuing requests against\na CDF API.\n\nNote:\n- Do not use other fields than `userIdentifier` (e.g. email) to uniquely identify a\nprincipal. User profile data is mutable and is not guaranteed to be stable or unique (except\n`userIdentifier`).\n- Do not use user profile data for authentication or authorization purposes. It is not\nguaranteed to be under the strict governance necessary for that. For example, one should not\nuse email address as proof of identity or job title to give access to resources.\n- We strongly recommend _against_ storing any user profile data. It is intended for display\npurposes only and may update at any time. Clients should fetch user profile data at demand,\nand optionally cache for performance reasons.\n" }, { "name": "Workflows", - "description": "Define and orchestrate data workflows consisting of CDF Transformations, Cognite Functions, and other processes. This service enables you to build data pipelines and business solutions leveraging the capabilities of CDF and external tools." + "description": "Define and orchestrate data workflows consisting of CDF Transformations, Cognite Functions, and other processes. This service enables you to build data pipelines and business solutions leveraging the capabilities of CDF and external tools." }, { "name": "Workflow versions" @@ -64249,6 +75023,10 @@ { "name": "Tasks" }, + { + "name": "Workflow triggers", + "description": "Triggers allow you to automate the execution of your data workflows based on specific conditions, such as scheduled times (defined by cron expressions)." + }, { "name": "Sources", "description": "A hosted extractor **source** represents an external source system on the internet. The **source** resource in CDF contains all the information the extractor needs to connect to the external source system.\nA source can have many jobs, each streaming different data from the source system.\nThis API is in beta. The endpoints listed here are available only when the `cdf-version` header with the value `beta` is provided." @@ -64265,6 +75043,30 @@ "name": "Mappings", "description": "A **mapping** is a custom transformation, translating the source format to a format that can be ingested into CDF. Mappings are written in the Cognite transformation language. For more details see documentation [here](https://docs.cognite.com/cdf/integration/guides/extraction/hosted_extractors/hosted_extractors_custom_mappings).\nThis API is in beta. The endpoints listed here are available only when the `cdf-version` header with the value `beta` is provided." }, + { + "name": "Postgres Gateway Users", + "description": "A postgres gateway **user** (also a typical postgres user) owns the foreign tables (built in or custom).\n\nThe created postgres user only has access to use foreign tables and cannot directly create tables users. To create foreign tables use the Postgres Gateway Tables APIs\n" + }, + { + "name": "Postgres Gateway Tables", + "description": "View and create foreign **tables** for a given **user**" + }, + { + "name": "SAP Instances", + "description": "This API is in beta. Do not use for production workloads. The endpoints listed here are available only when the `cdf-version` header with the value `beta` is provided.\n\nAn SAP **instance** represents a configuration to an external SAP S/4HANA destination system. The **instance** resource\ncontains all the information this API service needs to connect to an SAP S/4HANA destination.\n\nSupported SAP S/4HANA versions:\n* SAP S/4HANA OnPremise 2021 FPS01, and later\n* SAP S/4HANA Cloud" + }, + { + "name": "SAP Endpoints", + "description": "This API is in beta. Do not use for production workloads. The endpoints listed here are available only when the `cdf-version` header with the value `beta` is provided.\n\nAn SAP **endpoint** represents a configuration to an SAP S/4HANA OData endpoint (and its related OData entity) the API will send the writeback requests.\nIt defines which SAP Instance destination and which schema mapping should be used when processing a writeback request.\n\nSupported SAP entities:\n* [Maintenance Notifications](https://api.sap.com/api/OP_API_MAINTNOTIFICATION/overview)\n* [Attachments](https://api.sap.com/api/OP_API_CV_ATTACHMENT_SRV_0001/overview)" + }, + { + "name": "Schema Mappings", + "description": "This API is in beta. Do not use for production workloads. The endpoints listed here are available only when the `cdf-version` header with the value `beta` is provided.\nA **mapping** uses field and value mapping(s) to perform an in-flight transformation from source CDF entities to SAP S/4HANA entities. Mappings are written in the Cognite transformation language. For more details see the [documentation](https://docs.cognite.com/cdf/integration/guides/extraction/hosted_extractors/hosted_extractors_custom_mappings)." + }, + { + "name": "Writeback Requests", + "description": "This API is in beta. Do not use for production workloads. The endpoints listed here are available only when the `cdf-version` header with the value `beta` is provided. A writeback **request** to the SAP S/4HANA destination. The request body contains the target SAP endpoint destination, and the payload to send." + }, { "name": "Units", "description": "Units Catalog API provides a standardized list of units that can be used in Cognite Data Fusion.\nThe content this API serves is based on the [CDF Units Catalog](https://github.com/cognitedata/units-catalog)" @@ -64272,6 +75074,10 @@ { "name": "Unit Systems", "description": "Unit system is a collection of default units for different quantities.\nThis API provides a list of supported unit systems and their associated quantities and respective unit." + }, + { + "name": "Organizations", + "description": "An **organization** is used to group CDF projects and facilitate their management.\n\nAn organization holds users, projects, and perhaps other organizations. The organization ID is what the users enter\nwhen logging into Cognite apps, such as Cognite Data Fusion. The organization has one IdP configuration, which is used\nfor both interactive login and service account authentication against all projects in the organization.\n\n### External identity providers (IdP)\nCDF supports interfacing with external IdPs to manage users and groups. The following vendors are supported:\n- Microsoft Entra ID (formerly known as Azure AD or Azure Active Directory)\n- Auth0\n- Keycloak\n\n### Users\nIf a user can log into the external IdP configured for the organization, then they have access to the CDF organization.\nWhich of the organization's projects they have access to, and what they may do inside those projects, is determined by\nthe access settings within each project.\n\nAfter a user has logged into the organization for the first time, they will be visible in the organization's user list.\nUsers can see each other, which enables them to collaborate on projects.\n\n### Organization hierarchy\nAn organization can have child organizations. The ownership relationship is materialized through the `parentId`\nfield of the organization resource.\n\n### Projects\nAn organization holds CDF projects. The users that are logged into the organization can see all the projects in the\norganization, but what they can actually do within each project is controlled by the project's access control lists\n(ACLs) and other access control settings.\n\n### Allowed clusters\nAn organization has a list of clusters on which it can hold projects. This is the `allowedClusters` field on the\nresource.\n\n### Organization admins\nAn organization can have admins, which are identified principals that can perform an extended set of modifications on\nthe organization, such as creating projects, changing who the admins are, and so on.\n\nAdmins are identified by the `adminGroupId` field on the organization resource, which is the ID of a group that is\nmanaged in the external IdP.\n\nThe different organization API endpoints have different access rules, which are documented under each endpoint.\nThe general rule is that admins of a given organization have control over most aspects of the organization itself\nand full control of any sub-organizations.\n\n### Authentication for this API\nOrganizations are global, which means that they are not tied to specific projects or clusters.\nAPI requests against organizations are directed to `auth.cognite.com`, instead of a specific cluster and projects\nas for other resources.\n\nOnly OAuth tokens issued by `https://auth.cognite.com` (such as the ones issued when logging into Fusion) are accepted\nby the organizations API.\n\nIt is also possible to obtain a token by initiating a login flow against the authorization server directly. See\nthe \"Authorizations\" sections for more information.\n" } ] } \ No newline at end of file diff --git a/packages/stable/src/api/annotations/types.gen.ts b/packages/stable/src/api/annotations/types.gen.ts index 95f90c6d92..02f7aa2a7e 100644 --- a/packages/stable/src/api/annotations/types.gen.ts +++ b/packages/stable/src/api/annotations/types.gen.ts @@ -353,21 +353,21 @@ export interface AnnotationsInstanceRef { export interface AnnotationsIsoPlanAnnotation { /** Detail describing the equipment. */ detail?: string; - /** Contains a link to a file in CDF. This is used to navigate between files. */ + /** The asset this annotation is pointing at. Store the id of the file assets to generate downloadable URL. */ fileRef?: AnnotationsFileRef; - /** The indirectExternalId is the external id of the equipment used to identify the hotspot indirectly. E.g. first valve upstreams of . */ + /** The indirectExternalId is the external id of the equipment used to identify the hotspot indirectly. Exa. this is the of . */ indirectExternalId?: AnnotationsAssetRef; - /** Relation connecting this hotspot to a tag in case the hotspot has no tag. E.g. 'upstreams of'. This references the 'indirectExternalId'. */ + /** Relation connecting this hotspot to a tag in case the hotspot has no tag. E.g. 'second valve upstreams of'. This references the 'indirectExternalId'. */ indirectRelation?: string; /** The id of the Pipe that the hotspot belongs to. */ lineExternalId?: AnnotationsAssetRef; - /** Stores Functional Location (FLOC) external ID represented by the hotspot. */ + /** Stores Functional Locations (FLOC) external ID linked to the annotation. */ linkedResourceExternalId?: string; - /** Stores the Functional Location (FLOC) ID represented by the hotspot. */ + /** Stores Functional Locations' (FLOC) ID linked to the annotation. */ linkedResourceInternalId?: number; - /** Whether the hotspot represents an asset (FLOC) or file. */ + /** Stores Functional Location (FLOC) type the annotation linked to. */ linkedResourceType?: 'asset' | 'file'; - /** Temporary field for migration purposes. Id of corresponding legacy annotation. */ + /** Keep track of data link with old annotations. */ oldAnnotationId?: string; /** * The number of the page on which this annotation is located. The first page has number 1. @@ -375,17 +375,17 @@ export interface AnnotationsIsoPlanAnnotation { * @max 100000 */ pageNumber?: number; - /** Relative position of the relation connecting the hotspot to a tag. E.g. '2nd'. This references the 'indirectExternalId'. */ + /** Indicate the relative position of an annotation. */ relativePosition?: string; - /** Revision number of the P&ID file that the hotspot is valid for. */ + /** Keeps track of the modification to an annotation. */ revision?: string; /** Stores the dimensions of a valve or spade. */ sizeAndClass?: AnnotationsSizeAndClassType; - /** Marks the hotspot as user created or detected via pipeline. */ + /** Use to identify whether the annotation is user created one or ditected via pipeline. */ sourceType?: 'pipeline' | 'user'; - /** Additional details, the fluid code for pipes e.g. LO for Lube oil etc. */ + /** Use to save the fluid code of pipes Exa. LO for Lube oil and etc. */ subDetail?: string; - /** Text found in the area, might be a FLOC, valve detail, pipe or diagram name. */ + /** The pattern identified by the detection API results. */ text?: string; /** The location of the hotspot represented with a bounding box. */ textRegion?: AnnotationsBoundingBox; diff --git a/packages/stable/src/api/vision/types.gen.ts b/packages/stable/src/api/vision/types.gen.ts index 4d3d545d9f..9dcf629e22 100644 --- a/packages/stable/src/api/vision/types.gen.ts +++ b/packages/stable/src/api/vision/types.gen.ts @@ -333,7 +333,7 @@ export interface FeatureParameters { valveDetectionParameters?: ValveDetectionParameters; } /** - * An object containing file (external) id. + * An external-id or instance-id reference to the referenced file. */ export type FileReference = | { @@ -341,6 +341,9 @@ export type FileReference = } | { fileExternalId: VisionFileExternalId; + } + | { + fileInstanceId: VisionInstanceId; }; /** * Detect industrial objects such as gauges and valves in images. In beta. Available only when the `cdf-version: beta` header is provided. @@ -357,6 +360,14 @@ export interface IndustrialObjectDetectionParameters { */ threshold?: ThresholdParameter; } +/** + * @pattern ^[a-zA-Z]([a-zA-Z0-9_]{0,253}[a-zA-Z0-9])?$ + */ +export type InstanceExternalId = string; +/** + * @pattern ^[a-zA-Z][a-zA-Z0-9_-]{0,41}[a-zA-Z0-9]?$ + */ +export type InstanceSpace = string; /** * Contextualization job ID. * @format int64 @@ -500,6 +511,8 @@ export interface VisionAllOfFileId { fileExternalId?: VisionFileExternalId; /** The ID of a file in CDF. */ fileId: VisionFileId; + /** The instance id of a file in CDF. */ + fileInstanceId?: VisionInstanceId; } export type VisionExtractFeature = | TextDetection @@ -572,3 +585,11 @@ export type VisionFileExternalId = string; * @example 1234 */ export type VisionFileId = number; +/** + * The instance id of a file in CDF. + * @example {"space":"space","externalId":"externalId"} + */ +export interface VisionInstanceId { + externalId: InstanceExternalId; + space: InstanceSpace; +} diff --git a/packages/stable/src/exports.gen.ts b/packages/stable/src/exports.gen.ts index e1d77650e6..b194fe0408 100644 --- a/packages/stable/src/exports.gen.ts +++ b/packages/stable/src/exports.gen.ts @@ -157,6 +157,8 @@ export type { FileReference, IndustrialObjectDetection, IndustrialObjectDetectionParameters, + InstanceExternalId, + InstanceSpace, JobId, JobStatus, LevelGaugeDetection, @@ -184,4 +186,5 @@ export type { VisionExtractPredictions, VisionFileExternalId, VisionFileId, + VisionInstanceId, } from './api/vision/types.gen';