swagger: '2.0' info: title: Signal Validation API description: >- The following services are intended to be used on small ranges of timeseries data. **Range Check** Performs range check. Tries to find data going beyond range for given sensor's values on given interval. **Spike Alert** Performs spike detection. Tries to find spikes for given sensor's values. **Noise Alert** Performs noise detection. Tries to find noises for given sensor's values. **Jump Alert** Performs jump detection. Tries to find jumps for given sensor's values. **Data Gap Analysis** Performs data gap analysis. Tries to find gaps for given sensor's values and tries to interpolate insufficient measurements. **Bias Alert** Performs bias detection. Tries to find biases for given sensor's values. version: '3.1.0' x-visibility: external schemes: - https basePath: /api/signalvalidation/v3 produces: - application/json securityDefinitions: signalvalidation: type: oauth2 flow: accessCode authorizationUrl: 'https://oauth.simple.api/authorization' tokenUrl: 'https://oauth.simple.api/token' scopes: as.sv.u: run processing paths: /detectrangeviolations: post: summary: Launches range check task tags: - Range check description: Launches range check task with specific parameters security: - signalvalidation: - as.sv.u parameters: - name: Timeseries in: body description: An array containing the time series items. required: true schema: type: array items: $ref: '#/definitions/Timeseries' - name: variableName in: query description: Target variable name. Only this variable will be taken from given timeseries data. required: true type: string format: string - name: lowerLimit in: query description: Processing lower limit, should be less than upper limit. required: true type: number format: float - name: upperLimit in: query description: Processing upper limit, should be greater than lower limit. required: true type: number format: float responses: '200': description: OK schema: type: array items: $ref: '#/definitions/Range' '400': description: Wrong arguments exception schema: $ref: '#/definitions/wrong_argument_exception' '500': description: Exception during job processing schema: $ref: '#/definitions/exception_during_job_processing' default: description: Unexpected error schema: $ref: '#/definitions/error' /detectrangeviolationsDirect: post: summary: Launches range check task in direct integration with IoT time series. tags: - Range check direct description: Launches range check task with specific parameters security: - signalvalidation: - as.sv.u parameters: - name: variableName in: query description: Target variable name. Only this variable will be taken from given timeseries data. required: true type: string format: string - name: lowerLimit in: query description: Processing lower limit, should be less than upper limit. required: true type: number format: float - name: upperLimit in: query description: Processing upper limit, should be greater than lower limit. required: true type: number format: float - name: assetId in: query description: unique identifier of the asset (entity) required: true type: string minLength: 32 maxLength: 32 pattern: "[a-f0-9]{32}" - name: aspectName in: query description: Name of the aspect (property set). required: true type: string - name: from in: query description: Beginning of the time range to be retrieved (exclusive). required: true type: string format: date-time - name: to in: query description: End of the time range to be retrieved (exclusive). required: true type: string format: date-time responses: '200': description: OK schema: type: array items: $ref: '#/definitions/Range' '400': description: | Wrong parameters. Client errors faced while fetching IoT Time Series data are returned as 400 error with message: *\: IoT time series service returns \ status with message: \* where \ is replaced with the response status code and \ with the error message returned by IoT Time Series Service. schema: $ref: '#/definitions/wrong_argument_exception' '500': description: Exception during job processing schema: $ref: '#/definitions/exception_during_job_processing' default: description: Unexpected error schema: $ref: '#/definitions/error' /detectspikes: post: summary: Finds spike alerts. tags: - Spike detection description: Launches spike alert task with specific parameters. security: - signalvalidation: - as.sv.u parameters: - name: Timeseries in: body description: An array containing the time series items. required: true schema: type: array items: $ref: '#/definitions/Timeseries' - name: variableName in: query description: Target variable name. Only this variable will be taken from given timeseries data. required: true type: string format: string - name: windowSize in: query description: The processing window size, should be positive. required: true type: integer format: integer responses: '200': description: OK schema: type: array items: $ref: '#/definitions/Spike' '400': description: Wrong arguments exception schema: $ref: '#/definitions/wrong_argument_exception' '500': description: Exception during job processing schema: $ref: '#/definitions/exception_during_job_processing' default: description: Unexpected error schema: $ref: '#/definitions/error' /detectspikesDirect: post: summary: Finds spike alerts in direct integration with IoT time series. tags: - Spike detection direct description: Launches spike alert task with specific parameters. security: - signalvalidation: - as.sv.u parameters: - name: variableName in: query description: Target variable name. Only this variable will be taken from given timeseries data. required: true type: string format: string - name: windowSize in: query description: The processing window size, should be positive. required: true type: integer format: integer - name: assetId in: query description: unique identifier of the asset (entity) required: true type: string minLength: 32 maxLength: 32 pattern: "[a-f0-9]{32}" - name: aspectName in: query description: Name of the aspect (property set). required: true type: string - name: from in: query description: Beginning of the time range to be retrieved (exclusive). required: true type: string format: date-time - name: to in: query description: End of the time range to be retrieved (exclusive). required: true type: string format: date-time responses: '200': description: OK schema: type: array items: $ref: '#/definitions/Spike' '400': description: | Wrong parameters. Client errors faced while fetching IoT Time Series data are returned as 400 error with message: *\: IoT time series service returns \ status with message: \* where \ is replaced with the response status code and \ with the error message returned by IoT Time Series Service. schema: $ref: '#/definitions/wrong_argument_exception' '500': description: Exception during job processing schema: $ref: '#/definitions/exception_during_job_processing' default: description: Unexpected error schema: $ref: '#/definitions/error' /detectnoise: post: summary: Detect Noise tags: - Noise detection description: This endpoint detects noise for the given sensor. Result is the list of events. security: - signalvalidation: - as.sv.u parameters: - name: Timeseries in: body description: An array containing the time series items. required: true schema: type: array items: $ref: '#/definitions/Timeseries' - name: variableName in: query description: Target variable name. Only this variable will be taken from given timeseries data. required: true type: string format: string - name: windowRadius in: query description: Processing window radius, should be positive. required: true type: integer format: integer - name: threshold in: query description: Threshold to consider outlier value as a noise. required: true type: number format: float responses: '200': description: OK schema: type: array items: $ref: '#/definitions/Noise' '400': description: Wrong arguments exception schema: $ref: '#/definitions/wrong_argument_exception' '500': description: Exception during job processing schema: $ref: '#/definitions/exception_during_job_processing' default: description: Unexpected error schema: $ref: '#/definitions/error' /detectnoiseDirect: post: summary: Detect Noise in direct integration with IoT time series. tags: - Noise detection direct description: This endpoint detects noise for the given sensor. Result is the list of events. security: - signalvalidation: - as.sv.u parameters: - name: variableName in: query description: Target variable name. Only this variable will be taken from given timeseries data. required: true type: string format: string - name: windowRadius in: query description: Processing window radius, should be positive. required: true type: integer format: integer - name: threshold in: query description: Threshold to consider outlier value as a noise. required: true type: number format: float - name: assetId in: query description: unique identifier of the asset (entity) required: true type: string minLength: 32 maxLength: 32 pattern: "[a-f0-9]{32}" - name: aspectName in: query description: Name of the aspect (property set). required: true type: string - name: from in: query description: Beginning of the time range to be retrieved (exclusive). required: true type: string format: date-time - name: to in: query description: End of the time range to be retrieved (exclusive). required: true type: string format: date-time responses: '200': description: OK schema: type: array items: $ref: '#/definitions/Noise' '400': description: | Wrong parameters. Client errors faced while fetching IoT Time Series data are returned as 400 error with message: *\: IoT time series service returns \ status with message: \* where \ is replaced with the response status code and \ with the error message returned by IoT Time Series Service. schema: $ref: '#/definitions/wrong_argument_exception' '500': description: Exception during job processing schema: $ref: '#/definitions/exception_during_job_processing' default: description: Unexpected error schema: $ref: '#/definitions/error' /detectjumps: post: summary: Finds jump alerts. tags: - Jump detection description: Launches jump alert task with specific parameters. security: - signalvalidation: - as.sv.u parameters: - name: Timeseries in: body description: An array containing the time series items. required: true schema: type: array items: $ref: '#/definitions/Timeseries' - name: variableName in: query description: Target variable name. Only this variable will be taken from given timeseries data. required: true type: string format: string - name: windowSize in: query description: The value to limit window size. Positive value. required: true type: integer format: integer responses: '200': description: OK schema: type: array items: $ref: '#/definitions/Jump' '400': description: Wrong arguments exception schema: $ref: '#/definitions/wrong_argument_exception' '500': description: Exception during job processing schema: $ref: '#/definitions/exception_during_job_processing' default: description: Unexpected error schema: $ref: '#/definitions/error' /detectjumpsDirect: post: summary: Finds jump alerts in direct integration with IoT time series. tags: - Jump detection direct description: Launches jump alert task with specific parameters. security: - signalvalidation: - as.sv.u parameters: - name: variableName in: query description: Target variable name. Only this variable will be taken from given timeseries data. required: true type: string format: string - name: windowSize in: query description: The value to limit window size. Positive value. required: true type: integer format: integer - name: assetId in: query description: unique identifier of the asset (entity) required: true type: string minLength: 32 maxLength: 32 pattern: "[a-f0-9]{32}" - name: aspectName in: query description: Name of the aspect (property set). required: true type: string - name: from in: query description: Beginning of the time range to be retrieved (exclusive). required: true type: string format: date-time - name: to in: query description: End of the time range to be retrieved (exclusive). required: true type: string format: date-time responses: '200': description: OK schema: type: array items: $ref: '#/definitions/Jump' '400': description: | Wrong parameters. Client errors faced while fetching IoT Time Series data are returned as 400 error with message: *\: IoT time series service returns \ status with message: \* where \ is replaced with the response status code and \ with the error message returned by IoT Time Series Service. schema: $ref: '#/definitions/wrong_argument_exception' '500': description: Exception during job processing schema: $ref: '#/definitions/exception_during_job_processing' default: description: Unexpected error schema: $ref: '#/definitions/error' /detectgaps: post: summary: Launches data gap analysis task tags: - Data gap analysis description: Launches data gap analysis task with specific parameters. security: - signalvalidation: - as.sv.u parameters: - name: Timeseries in: body description: An array containing the time series items. required: true schema: type: array items: $ref: '#/definitions/Timeseries' - name: variableName in: query description: Target variable name. Only this variable will be taken from given timeseries data. required: true type: string format: string - name: threshold in: query description: Max interval in millis between two consecutive points, which is not considered as a gap. required: true type: integer format: long responses: '200': description: OK schema: $ref: '#/definitions/DataGap' '400': description: Wrong arguments exception schema: $ref: '#/definitions/wrong_argument_exception' '500': description: Exception during job processing schema: $ref: '#/definitions/exception_during_job_processing' default: description: Unexpected error schema: $ref: '#/definitions/error' /detectgapsDirect: post: summary: Launches data gap analysis task in direct integration with IoT time series. tags: - Data gap analysis direct description: Launches data gap analysis task with specific parameters. security: - signalvalidation: - as.sv.u parameters: - name: variableName in: query description: Target variable name. Only this variable will be taken from given timeseries data. required: true type: string format: string - name: threshold in: query description: Max interval in millis between two consecutive points, which is not considered as a gap. required: true type: integer format: long - name: assetId in: query description: unique identifier of the asset (entity) required: true type: string minLength: 32 maxLength: 32 pattern: "[a-f0-9]{32}" - name: aspectName in: query description: Name of the aspect (property set). required: true type: string - name: from in: query description: Beginning of the time range to be retrieved (exclusive). required: true type: string format: date-time - name: to in: query description: End of the time range to be retrieved (exclusive). required: true type: string format: date-time responses: '200': description: OK schema: $ref: '#/definitions/DataGap' '400': description: | Wrong parameters. Client errors faced while fetching IoT Time Series data are returned as 400 error with message: *\: IoT time series service returns \ status with message: \* where \ is replaced with the response status code and \ with the error message returned by IoT Time Series Service. schema: $ref: '#/definitions/wrong_argument_exception' '500': description: Exception during job processing schema: $ref: '#/definitions/exception_during_job_processing' default: description: Unexpected error schema: $ref: '#/definitions/error' /detectgapsandinterpolate: post: summary: Launches data gap analysis task with interpolation. tags: - Data gap analysis description: Launches data gap analysis task with interpolation. security: - signalvalidation: - as.sv.u parameters: - name: Timeseries in: body description: An array containing the time series items. required: true schema: type: array items: $ref: '#/definitions/Timeseries' - name: variableName in: query description: Target variable name. Only this variable will be taken from given timeseries data. required: true type: string format: string - name: threshold in: query description: Max interval in millis between two consecutive points, which is not considered as a gap. required: true type: integer format: long responses: '200': description: OK schema: $ref: '#/definitions/DataGapInterpolated' '400': description: Wrong arguments exception schema: $ref: '#/definitions/wrong_argument_exception' '500': description: Exception during job processing schema: $ref: '#/definitions/exception_during_job_processing' default: description: Unexpected error schema: $ref: '#/definitions/error' /detectgapsandinterpolateDirect: post: summary: Launches data gap analysis task with interpolation in direct integration with IoT time series. tags: - Data gap analysis direct description: Launches data gap analysis task with interpolation. security: - signalvalidation: - as.sv.u parameters: - name: variableName in: query description: Target variable name. Only this variable will be taken from given timeseries data. required: true type: string format: string - name: threshold in: query description: Max interval in millis between two consecutive points, which is not considered as a gap. required: true type: integer format: long - name: assetId in: query description: unique identifier of the asset (entity) required: true type: string minLength: 32 maxLength: 32 pattern: "[a-f0-9]{32}" - name: aspectName in: query description: Name of the aspect (property set). required: true type: string - name: from in: query description: Beginning of the time range to be retrieved (exclusive). required: true type: string format: date-time - name: to in: query description: End of the time range to be retrieved (exclusive). required: true type: string format: date-time responses: '200': description: OK schema: $ref: '#/definitions/DataGapInterpolated' '400': description: | Wrong parameters. Client errors faced while fetching IoT Time Series data are returned as 400 error with message: *\: IoT time series service returns \ status with message: \* where \ is replaced with the response status code and \ with the error message returned by IoT Time Series Service. schema: $ref: '#/definitions/wrong_argument_exception' '500': description: Exception during job processing schema: $ref: '#/definitions/exception_during_job_processing' default: description: Unexpected error schema: $ref: '#/definitions/error' /detectbias: post: summary: Finds bias alerts. tags: - Bias detection description: Launches bias alert task with specific parameters. security: - signalvalidation: - as.sv.u parameters: - name: Timeseries in: body description: An array containing the time series items. required: true schema: type: array items: $ref: '#/definitions/Timeseries' - name: variableName in: query description: Target variable name. Only this variable will be taken from given timeseries data. required: true type: string format: string - name: windowSize in: query description: Processing window size value, should be positive. required: true type: integer format: integer - name: threshold in: query description: Processing threshold value, should be positive. required: true type: number format: float - name: step in: query description: Processing step value, should be from 1 to windowSize. required: true type: integer format: integer responses: '200': description: OK schema: type: array items: $ref: '#/definitions/Bias' '400': description: Wrong arguments exception schema: $ref: '#/definitions/wrong_argument_exception' '500': description: Exception during job processing schema: $ref: '#/definitions/exception_during_job_processing' default: description: Unexpected error schema: $ref: '#/definitions/error' /detectbiasDirect: post: summary: Finds bias alerts in direct integration with IoT time series. tags: - Bias detection direct description: Launches bias alert task with specific parameters. security: - signalvalidation: - as.sv.u parameters: - name: variableName in: query description: Target variable name. Only this variable will be taken from given timeseries data. required: true type: string format: string - name: windowSize in: query description: Processing window size value, should be positive. required: true type: integer format: integer - name: threshold in: query description: Processing threshold value, should be positive. required: true type: number format: float - name: step in: query description: Processing step value, should be from 1 to windowSize. required: true type: integer format: integer - name: assetId in: query description: unique identifier of the asset (entity) required: true type: string minLength: 32 maxLength: 32 pattern: "[a-f0-9]{32}" - name: aspectName in: query description: Name of the aspect (property set). required: true type: string - name: from in: query description: Beginning of the time range to be retrieved (exclusive). required: true type: string format: date-time - name: to in: query description: End of the time range to be retrieved (exclusive). required: true type: string format: date-time responses: '200': description: OK schema: type: array items: $ref: '#/definitions/Bias' '400': description: | Wrong parameters. Client errors faced while fetching IoT Time Series data are returned as 400 error with message: *\: IoT time series service returns \ status with message: \* where \ is replaced with the response status code and \ with the error message returned by IoT Time Series Service. schema: $ref: '#/definitions/wrong_argument_exception' '500': description: Exception during job processing schema: $ref: '#/definitions/exception_during_job_processing' default: description: Unexpected error schema: $ref: '#/definitions/error' definitions: Timeseries: type: object required: - _time properties: _time: description: time type: string additionalProperties: description: | Time series aspect (property set) variable with value. example: { "_time": '2017-10-01T12:00:00.001Z', "pressure": 4 } Range: type: object properties: description: description: RANGE type: string example: RANGE kind: description: Event kind description type: string example: EVENT_UPPER_LIMIT enum: - EVENT_UPPER_LIMIT - EVENT_LOWER_LIMIT timestamp: description: Timestamp type: string example: '2017-10-19T00:00:01.941Z' Spike: type: object properties: description: description: Event kind description type: string example: SPIKE enum: - SPIKE timestamp: description: Timestamp type: string example: '2017-10-19T00:00:01.941Z' Noise: type: object properties: description: description: Event description type: string example: NOISE enum: - NOISE timestamp: description: Timestamp type: string example: '2017-10-19T00:00:01.941Z' Jump: type: object properties: description: description: Event description type: string example: JUMP enum: - JUMP timestamp: description: Timestamp type: string example: '2017-10-19T00:00:01.941Z' Event: type: object properties: description: description: Describes event kind enum: - EVENT_START - EVENT_END type: string example: EVENT_START _time: description: Timestamp type: string example: '2017-10-19T00:00:01.941Z' DataGap: properties: events: type: array items: $ref: '#/definitions/Event' interpolatedMeasurements: type: array items: $ref: '#/definitions/BlankArray' BlankArray: type: object DataGapInterpolated: properties: events: type: array items: $ref: '#/definitions/Event' interpolatedMeasurements: type: array items: $ref: '#/definitions/InterpolatedMeasurement' InterpolatedMeasurement: properties: variableName1: description: interpolated variable type: string example: '10.5' _time: description: Timestamp type: string example: '2017-10-19T00:00:01.941Z' Bias: type: object properties: description: description: Event description type: string example: BIAS enum: - BIAS timestamp: description: Timestamp type: string example: '2017-10-19T00:00:01.941Z' wrong_argument_exception: type: object properties: id: type: string format: uuid message: type: string example: Wrong arguments exception. exception_during_job_processing: type: object properties: id: type: string format: uuid message: type: string example: Exception during job processing. error: type: object properties: id: type: string format: uuid message: type: string