The chat responses are generated using Generative AI technology for intuitive search and may not be entirely accurate. They are not intended as professional advice. For full details, including our use rights, privacy practices and potential export control restrictions, please refer to our Generative AI Service Terms of Use and Generative AI Service Privacy Information. As this is a test version, please let us know if something irritating comes up. Like you get recommended a chocolate fudge ice cream instead of an energy managing application. If that occurs, please use the feedback button in our contact form!
Skip to content
Insights Hub and Industrial IoT

Insights Hub drives smart manufacturing through the industrial Internet of Things. Gain actionable insights with asset and operational data and improve your processes.

Usage Transparency Service – Samples¶

Adding usages to UTS¶

This API can be used by operators and applications to create a job that adds application specific usages (for example, the number of created report pages, assets configured, etc.) of multiple tenants and users to UTS.

Add usages to UTS using the following endpoint:

POST /usagesJobs

Sample Request:

{
  "users": [
    {
      "tenantId": "siemenshcops",
      "userId": "john.doe@healthcare.siemens.com",
      "userType": "user",
      "resources": [
        {
          "application": "manage-my-machines",
          "alias": "analyze-my-performance",
          "resource": "asset-id-1",
          "usages": [
            {
              "value": 20,
              "unit": "mmm-recurring-unit",
              "datetime": "2011-07-14T19:43:37Z"
            }
          ]
        }
      ]
    }
  ]
}

Sample Response:

{
  "id": "35a4cb01-2497-4191-ad1c-551a1942c409-20190520131",
  "time": "2011-07-14T19:43:37Z",
  "status": "ACCEPTED",
  "usagesCount": 7
}

Retrieving query status¶

This API gives the overall status summary of the jobs and optionally the usages added using /UsagesJobs or /usages APIs. Description of job status is as follows:

  • ACCEPTED: A job is created and the usages has been accepted.
  • INPROGRESS: Processing is on-going for at least one of the usages added by the job.
  • ERRORS: There is at least one error encountered while processing the usages.
  • COMPLETED: All the processes applicable to the usages have been completed.

Retrieve query status from UTS using the following endpoint:

GET /usagesJobs

Sample Response:

{
  "jobs": [
    {
      "id": "35a4cb01-2497-4191-ad1c-551a1942c409-20190520131",
      "time": "2011-07-14T19:43:37Z",
      "status": "ACCEPTED",
      "usagesCount": 7
    }
  ],
  "page": {
    "number": 2,
    "size": 10,
    "totalElements": 40,
    "totalPages": 4
  }
}

Retrieving query status of usages¶

This API gives the status summary of the usages added using /UsagesJobs or /usages APIs. Description of Usages status is as follows:

  • ACCEPTED: Usages have been accepted.
  • VERIFIED: Usages have been verified against the rules configured in rule engine, if applicable.
  • VERIFICATIONFAILED: Verification of at least one of the usages is failed.
  • NOVERIFICATION: No applicable rule was found and hence no verification was done.
  • AGGREGATED: Usages have been aggregated into a running daily aggregate value based on the aggregation function defined in rule. In case no rule is applicable, default aggregation function 'SUM' is used. The aggregation is performed every hour and the daily aggregate is updated. Once aggregated, the UTS is queried to report the usages through UI or data endpoints.
  • SENTFORBILLING: If billing is enabled for the usages, the data has been sent successfully to the billing system.
  • FAILEDTOSENDFORBILLING: Errors were encountered while sending the data to billing. These could be network issues or other internal errors.
  • RECEIVEDFORBILLING: Data sent for billing is verified to be received in the billing system.

Retrieve query status of the usages using the following endpoint:

GET /usagesJobs/{id}

Sample Response:

{
  "id": "35a4cb01-2497-4191-ad1c-551a1942c409-20190520131",
  "time": "2011-07-14T19:43:37Z",
  "status": "ACCEPTED",
  "usagesCount": 7,
  "usagesSummary": [
    {
      "application": "manage-my-machine",
      "unit": "mm-onboarding-unit",
      "usagesCount": 2,
      "processStatus": "ACCEPTED"
    }
  ],
  "page": {
    "number": 2,
    "size": 10,
    "totalElements": 40,
    "totalPages": 4
  }
}

Retrieving processing errors¶

This API gives the processing errors associated with the set of usages that were received by the identified job. In case of 'Verification Errors’, the list of usages that failed the verification is part of the errors. In case of 'Billing Errors’, billing ids are part of the error data. To resolve the issues, contact the support team.

Retrieve processing errors for the usages using the following endpoint:

GET /usagesJobs/{id}/errors

Sample Response:

{
  "errors": [
    {
      "code": "mdsp.<provider>.<service/app>.<errorid>",
      "message": "<error message in english>",
      "messageParameters": [
        {
          "name": "name1",
          "value": "value1"
        }
      ],
      "logref": "0bff7e7a-cd25-4576-9908-4180ef086174",
      "errorType": "ValidationError",
      "info": "http://developer.mindsphere.io/uts/documentation/billing"
    }
  ],
  "page": {
    "number": 2,
    "size": 10,
    "totalElements": 40,
    "totalPages": 4
  }
}