SDS P4 API

<back to all web services

Usage

Get usages from tablestorage

The following routes are available for this service:
GET/api/v5/meteringpoints/{Ean}/usages/{Aggregation}/{DateFrom}Get usages of a single asset with the selected aggregation starting from DateFrom from tablestorage
GET/api/v5/meteringpoints/{Ean}/usages/{Aggregation}/{DateFrom}/{DateTo}Get usages of a single asset with the selected aggregation and period from tablestorage
import java.math.*
import java.util.*
import net.servicestack.client.*


/**
* Get usages from tablestorage
*/
@Api(Description="Get usages from tablestorage")
open class Usage : Generic()
{
    /**
    * Request of details of specific meteringpoint with Ean
    */
    @ApiMember(DataType="EAN (18 numbers)", Description="Request of details of specific meteringpoint with Ean", Name="Ean")
    var Ean:String? = null

    /**
    * Aggregation level. The None-'level' will give the most detailed level available for the requested asset. If a level is requested that is not available or can be calculate, no data is returned. Enum options: None, Hour, Day
    */
    @ApiMember(DataType="Enum", Description="Aggregation level. The None-'level' will give the most detailed level available for the requested asset. If a level is requested that is not available or can be calculate, no data is returned. Enum options: None, Hour, Day", IsRequired=true, Name="Aggregation")
    var Aggregation:AggregationForAPI? = null

    /**
    * Start date the usages are requested for
    */
    @ApiMember(DataType="Date: yyyy-mm-dd", Description="Start date the usages are requested for", IsRequired=true, Name="DateFrom")
    var DateFrom:Date? = null

    /**
    * End date the usages are requested for (this is included in the response). If no date is provided the DateTo will seven days from the DateFrom. 
    */
    @ApiMember(DataType="Date: yyyy-mm-dd", Description="End date the usages are requested for (this is included in the response). If no date is provided the DateTo will seven days from the DateFrom. ", Name="DateTo")
    var DateTo:Date? = null

    /**
    * The output can be generated in a few formats. UsageReturnCombined: return values will be subtracted from the usage, UsageReturn: separate columns form usage and return (if available) and UsageReturnAndTariff: for both usage and return a column for tariff1 and tariff2. Default value: UsageReturnCombined
    */
    @ApiMember(DataType="Enum", Description="The output can be generated in a few formats. UsageReturnCombined: return values will be subtracted from the usage, UsageReturn: separate columns form usage and return (if available) and UsageReturnAndTariff: for both usage and return a column for tariff1 and tariff2. Default value: UsageReturnCombined", Name="PayloadFormat")
    var PayloadFormat:PayloadFormat? = null

    /**
    * See filter. Usages are available from the Detail or Day channel. Default value: Detail
    */
    @ApiMember(DataType="Enum", Description="See filter. Usages are available from the Detail or Day channel. Default value: Detail", Name="Source")
    var Source:MeasurementSource? = null

    /**
    * Add column with Dutch day (Default: false)
    */
    @ApiMember(DataType="Boolean", Description="Add column with Dutch day (Default: false)", Name="AddDateNL")
    var AddDateNL:Boolean? = null

    /**
    * Add columns with CreatedOn and LastUpdated (Default: false)
    */
    @ApiMember(DataType="Boolean", Description="Add columns with CreatedOn and LastUpdated (Default: false)", Name="AddTimestamps")
    var AddTimestamps:Boolean? = null

    /**
    * Add column with ean (Default: false)
    */
    @ApiMember(DataType="Boolean", Description="Add column with ean (Default: false)", Name="AddEan")
    var AddEan:Boolean? = null

    /**
    * Create a row for each register instead of a column/field for each register (Default: false)
    */
    @ApiMember(DataType="Boolean", Description="Create a row for each register instead of a column/field for each register (Default: false)", Name="RegistersInRows")
    var RegistersInRows:Boolean? = null

    /**
    * Gridoperator doesn't provided tariff information for the detail channel, but this can be calculated (Default: false)
    */
    @ApiMember(DataType="Boolean", Description="Gridoperator doesn't provided tariff information for the detail channel, but this can be calculated (Default: false)", Name="CalculateDetailTariff")
    var CalculateDetailTariff:Boolean? = null

    /**
    * calculate the usage of that period and divide it over the missing hours or 15 minute periods, but this can be calculated (Default: false)
    */
    @ApiMember(DataType="Boolean", Description="calculate the usage of that period and divide it over the missing hours or 15 minute periods, but this can be calculated (Default: false)", Name="CalculateMissingUsages")
    var CalculateMissingUsages:Boolean? = null
}

open class Generic
{
    /**
    * Api-key. Used to provide credentials to the api. Can also be provided through the request headers with key: X-API-KEY
    */
    @ApiMember(DataType="String", Description="Api-key. Used to provide credentials to the api. Can also be provided through the request headers with key: X-API-KEY", IsRequired=true, Name="ApiKey")
    var ApiKey:String? = null

    /**
    * Normally the result of the request is put inside a resultobject with some status information about the request. If you want the output as csv this outer object can be irritating. Default value: FALSE 
    */
    @ApiMember(DataType="Boolean", Description="Normally the result of the request is put inside a resultobject with some status information about the request. If you want the output as csv this outer object can be irritating. Default value: FALSE ", Name="OnlyPayload")
    var OnlyPayload:Boolean? = null

    /**
    * Show the request as interpreted by the api. Useful to see how filters / dates are parsed. If no value us provided, the default value is: FALSE 
    */
    @ApiMember(DataType="Boolean", Description="Show the request as interpreted by the api. Useful to see how filters / dates are parsed. If no value us provided, the default value is: FALSE ", Name="ShowRequest")
    var ShowRequest:Boolean? = null

    /**
    * Format all DateTime in the response object. If used in browser, sometimes ISO8601 is not correctly transformed. Enum options: ISO8601 (DEFAULT), UTC, NL, NLOffset, Unix, UnixMillis
    */
    @ApiMember(DataType="Enum", Description="Format all DateTime in the response object. If used in browser, sometimes ISO8601 is not correctly transformed. Enum options: ISO8601 (DEFAULT), UTC, NL, NLOffset, Unix, UnixMillis", Name="DateTimeFormat")
    var DateTimeFormat:DateTimeFormat? = null
}

enum class DateTimeFormat
{
    IsO8601,
    Utc,
    Nl,
    NlOffset,
    In,
    InOffset,
    Unix,
    UnixMillis,
}

enum class AggregationForAPI
{
    None,
    Hour,
    Day,
    Week,
    Month,
    Year,
}

enum class PayloadFormat
{
    UsageReturnCombined,
    UsageReturn,
    UsageReturnAndTariff,
}

enum class MeasurementSource
{
    Detail,
    Day,
    Month,
    Unknown,
}

Kotlin Usage DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .json suffix or ?format=json

To embed the response in a jsonp callback, append ?callback=myCallback

HTTP + JSON

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

GET /api/v5/meteringpoints/{Ean}/usages/{Aggregation}/{DateFrom} HTTP/1.1 
Host: p4v8.smartdatasolutions.nl 
Accept: application/json