Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Jira Legacy
serverSystem Jira
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyCPS-251

...

CPS temporal data query allows the user to fetch data based on multiple filtering criteria. This data can be used by an analytical system to take decisions.

...

NoNameTypeDefaultPurposeExample
1indexint0

The query output can have many rows so it is important to limit the fetched data. To limit the number of records and to provide pagination, these two parameters can be used. 

"index" parameter represents the page number, starts with 0, and maxSize is the page size.


2maxSizeint1000
3pointInTimeDateTimeTimestamp (ISO Format)CurrentDateTime

When a user uses the APIs with pagination (by running several stateless requests), the result set can be impacted by new states stored while navigating. This can be a challenge to retrieve a consistent result set. 

This parameter must be used to avoid this issue.


4

sortBy

string LATEST_FIRSTPossible values - OLDEST_FIRST & LATEST_FIRST

Assumptions

...

Code Block
collapsetrue
{
  "idNearRTRIC": "1",
  "labels" : [ "cps", "ran"],
  "nestedObject": {
    "id": "4",
	"     "attributes": {
      "gNBDUId": 4.0,
      "gNBDUName": "gnduserver4",
      "gNBIdLength": 32.0
    }
  },
  "GNBDUFunction": [
    {
      "idGNBDUFunction": "5",
      "NRCellDU": [
        {
          "idNRCellDU": "13905",
          "attributes": {
            "nRPCI": 12.0,
            "nRTAC": 310.0,
            "cellLocalId": 13905.0
          }
        },
        {
          "idNRCellDU": "14655",
          "attributes": {
            "nRPCI": 12.0,
            "nRTAC": 310.0,
            "cellLocalId": 14655.0
          }
        }
      ],
      "attributes": {
        "gNBDUId": 5.0,
        "gNBDUName": "gnduserver5",
        "gNBIdLength": 32.0
      }
    }
  ]
}

...

The field
NoType of fieldTo be searchFormat
1Top-level fieldfield idNearRTRIC2The field inside another object

{ "idNearRTRIC": "1"}

2Nested FieldnestedObject → id3String collection field at the top levellabels4{ "nestedObject" : {"attributes" :  {"gNBDUId": 4.0 }} }
3value(s) in a collectionlabels

{ "labels": ["cps"] }

4field of an object inside a collectionGNBDUFunction → idGNBDUFunction

{ "GNBDUFunction" : [ {"idGNBDUFunction" : 5 }]  }

Proposed APIs

Currently, we are not supporting all the filtering criteria defined in the overview.  The supported ones are defined below and are passed as query parameter.

  1. after - timestamp ( ISO Format) to consider data created after the specified Timestamp
  2. payload - to define payload filtering criteria
  3. index - to define the page number (required for pagination)
  4. maxSize - to limit the response size
  5. pointInTime - to consider data changed or added before this time.
  6. sortBy - to define the order of data in the result set

The response format for all GET APIs is the same and defined here

By Anchor Name

URL: GET /dataspaces/{dataspace-name}​/anchors/{anchor-name}​

Example: GET /dataspaces/{dataspace-name}​/anchors/{anchor-name}​?after=2021-03-21T00:00:00-0:00&payload=/device/port/interface[status=up]&maxSize=500

By Dataspace and Schema-set

URL: ​GET /dataspaces/{dataspace-name}/schema-sets/{schema-set}

Example: GET /dataspaces/{dataspace-name}/schema-sets/{schema-set}?after=2021-03-21T00:00:00-0:00&payload=/device/port/interface[status=up]

Response 
Anchor
#responseBody
#responseBody
nametype
nextRecordsLinkstringadded only if there are remaining records to be fetched for the query.
previousRecordsLinkstringadded only if it is not the first set of records.
recordslist

contains one record for each timestamp that meets filtering criteria. It contains header information along with data. 

...