/* Options: Date: 2026-01-12 03:48:45 Version: 8.22 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://p4v8.smartdatasolutions.nl/api //GlobalNamespace: //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: Graph.* //ExcludeTypes: //DefaultImports: package:servicestack/servicestack.dart */ import 'package:servicestack/servicestack.dart'; enum DateTimeFormat { ISO8601, UTC, NL, NLOffset, IN, INOffset, Unix, UnixMillis, } class Generic implements IConvertible { /** * 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") String? ApiKey; /** * 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") bool? OnlyPayload; /** * 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") bool? ShowRequest; /** * 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") DateTimeFormat? DateTimeFormat; Generic({this.ApiKey,this.OnlyPayload,this.ShowRequest,this.DateTimeFormat}); Generic.fromJson(Map json) { fromMap(json); } fromMap(Map json) { ApiKey = json['ApiKey']; OnlyPayload = json['OnlyPayload']; ShowRequest = json['ShowRequest']; DateTimeFormat = JsonConverters.fromJson(json['DateTimeFormat'],'DateTimeFormat',context!); return this; } Map toJson() => { 'ApiKey': ApiKey, 'OnlyPayload': OnlyPayload, 'ShowRequest': ShowRequest, 'DateTimeFormat': JsonConverters.toJson(DateTimeFormat,'DateTimeFormat',context!) }; getTypeName() => "Generic"; TypeContext? context = _ctx; } enum AggregationForAPI { None, Hour, Day, Week, Month, Year, } /** * Get data for graph, usages and some statistical information */ // @Route("/v6/meteringpoints/{Ean}/graph/{Aggregation}/{DateFrom}/{DateTo}", "GET") // @Api(Description="Get data for graph, usages and some statistical information") class Graph extends Generic implements IConvertible, IGet { /** * Request of details of specific meteringpoint with Ean */ // @ApiMember(DataType="EAN (18 numbers)", Description="Request of details of specific meteringpoint with Ean", IsRequired=true, Name="Ean") String? Ean; /** * 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 */ // @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") AggregationForAPI? Aggregation; /** * 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") DateTime? DateFrom; /** * 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. ", IsRequired=true, Name="DateTo") DateTime? DateTo; /** * 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") bool? CalculateMissingUsages; Graph({this.Ean,this.Aggregation,this.DateFrom,this.DateTo,this.CalculateMissingUsages}); Graph.fromJson(Map json) { fromMap(json); } fromMap(Map json) { super.fromMap(json); Ean = json['Ean']; Aggregation = JsonConverters.fromJson(json['Aggregation'],'AggregationForAPI',context!); DateFrom = JsonConverters.fromJson(json['DateFrom'],'DateTime',context!); DateTo = JsonConverters.fromJson(json['DateTo'],'DateTime',context!); CalculateMissingUsages = json['CalculateMissingUsages']; return this; } Map toJson() => super.toJson()..addAll({ 'Ean': Ean, 'Aggregation': JsonConverters.toJson(Aggregation,'AggregationForAPI',context!), 'DateFrom': JsonConverters.toJson(DateFrom,'DateTime',context!), 'DateTo': JsonConverters.toJson(DateTo,'DateTime',context!), 'CalculateMissingUsages': CalculateMissingUsages }); getTypeName() => "Graph"; TypeContext? context = _ctx; } TypeContext _ctx = TypeContext(library: 'p4v8.smartdatasolutions.nl', types: { 'DateTimeFormat': TypeInfo(TypeOf.Enum, enumValues:DateTimeFormat.values), 'Generic': TypeInfo(TypeOf.Class, create:() => Generic()), 'AggregationForAPI': TypeInfo(TypeOf.Enum, enumValues:AggregationForAPI.values), 'Graph': TypeInfo(TypeOf.Class, create:() => Graph()), });