SDS P4 API

<back to all web services

Graph

Get data for graph, usages and some statistical information

The following routes are available for this service:
GET/api/v6/meteringpoints/{Ean}/graph/{Aggregation}/{DateFrom}/{DateTo}Get usages based on aggregation starting from DateFrom to endDate
namespace SDS.P4v6a.API.Common

open System
open System.Collections
open System.Collections.Generic
open System.Runtime.Serialization
open ServiceStack
open ServiceStack.DataAnnotations

    type DateTimeFormat =
        | ISO8601 = 0
        | UTC = 1
        | NL = 2
        | NLOffset = 3
        | IN = 4
        | INOffset = 5
        | Unix = 6
        | UnixMillis = 7

    [<AllowNullLiteral>]
    type Generic() = 
        ///<summary>
        ///Api-key. Used to provide credentials to the api. Can also be provided through the request headers with key: X-API-KEY
        ///</summary>
        [<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")>]
        member val ApiKey:String = null with get,set

        ///<summary>
        ///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 
        ///</summary>
        [<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")>]
        member val OnlyPayload:Boolean = new Boolean() with get,set

        ///<summary>
        ///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 
        ///</summary>
        [<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")>]
        member val ShowRequest:Boolean = new Boolean() with get,set

        ///<summary>
        ///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
        ///</summary>
        [<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")>]
        member val DateTimeFormat:DateTimeFormat = new DateTimeFormat() with get,set

    type AggregationForAPI =
        | None = 0
        | Hour = 1
        | Day = 2
        | Week = 3
        | Month = 4
        | Year = 5

    ///<summary>
    ///Get data for graph, usages and some statistical information
    ///</summary>
    [<Api(Description="Get data for graph, usages and some statistical information")>]
    [<AllowNullLiteral>]
    type Graph() = 
        inherit Generic()
        ///<summary>
        ///Request of details of specific meteringpoint with Ean
        ///</summary>
        [<ApiMember(DataType="EAN (18 numbers)", Description="Request of details of specific meteringpoint with Ean", IsRequired=true, Name="Ean")>]
        member val Ean:String = null with get,set

        ///<summary>
        ///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, Week, Month
        ///</summary>
        [<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, Week, Month", IsRequired=true, Name="Aggregation")>]
        member val Aggregation:AggregationForAPI = new AggregationForAPI() with get,set

        ///<summary>
        ///Start date the usages are requested for
        ///</summary>
        [<ApiMember(DataType="Date: yyyy-mm-dd", Description="Start date the usages are requested for", IsRequired=true, Name="DateFrom")>]
        member val DateFrom:DateTime = new DateTime() with get,set

        ///<summary>
        ///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. 
        ///</summary>
        [<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. ", IsRequired=true, Name="DateTo")>]
        member val DateTo:DateTime = new DateTime() with get,set

        ///<summary>
        ///calculate the usage of that period and divide it over the missing hours or 15 minute periods, but this can be calculated (Default: false)
        ///</summary>
        [<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")>]
        member val CalculateMissingUsages:Boolean = new Boolean() with get,set

F# Graph 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/v6/meteringpoints/{Ean}/graph/{Aggregation}/{DateFrom}/{DateTo} HTTP/1.1 
Host: p4v8.smartdatasolutions.nl 
Accept: application/json