Power.Dev Optimization Services

<back to all web services

TODOptimizerRequest

The following routes are available for this service:
POST/optimizer/tod
namespace powerDev.Optimization.ServiceModel

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

    [<AllowNullLiteral>]
    type AnnualRateItem() = 
        member val Year:Int32 = new Int32() with get,set
        member val Value:Decimal = new Decimal() with get,set

    [<AllowNullLiteral>]
    type YoyFactorOptimizarItem() = 
        member val Year:Int32 = new Int32() with get,set
        member val Factor:Decimal = new Decimal() with get,set

    [<AllowNullLiteral>]
    type TodOptimizerRequestItem() = 
        member val Year:Int32 = new Int32() with get,set
        member val Month:Int32 = new Int32() with get,set
        member val Hour:Int32 = new Int32() with get,set
        member val WeekDay:Int32 = new Int32() with get,set
        member val EnergyPrice:Decimal = new Decimal() with get,set
        member val CapacityPrice:Decimal = new Decimal() with get,set

    [<AllowNullLiteral>]
    type TodOptimizerRequestBase() = 
        member val ProjectId:Guid = new Guid() with get,set
        member val ChargeDischargeLimit:Decimal = new Decimal() with get,set
        member val BatteryCapacity:Decimal = new Decimal() with get,set
        member val ChargeEfficiency:Decimal = new Decimal() with get,set
        member val DischargeEfficiency:Decimal = new Decimal() with get,set
        member val ParaciticLossesOperation:Decimal = new Decimal() with get,set
        member val ParaciticLossesResting:Decimal = new Decimal() with get,set
        member val HVACLosses:Decimal = new Decimal() with get,set
        member val AcCablingLosses:Decimal = new Decimal() with get,set
        member val TransformatorLosses:Decimal = new Decimal() with get,set
        member val ThermalLosses:Decimal = new Decimal() with get,set
        member val UnavailabilityLoss:Decimal = new Decimal() with get,set
        member val OtherLosses:Decimal = new Decimal() with get,set
        member val EnableCapacity:Boolean = new Boolean() with get,set
        member val EnergySchedule:IEnumerable<AnnualRateItem> = null with get,set
        member val CapacitySchedule:IEnumerable<AnnualRateItem> = null with get,set
        member val YoyFactors:IEnumerable<YoyFactorOptimizarItem> = null with get,set
        member val Data:IEnumerable<TodOptimizerRequestItem> = null with get,set
        member val ApiActionId:Guid = new Guid() with get,set

    [<AllowNullLiteral>]
    type TODOptimizerRequest() = 
        inherit TodOptimizerRequestBase()

    type ApiResponseStatus =
        | Undefined = 0
        | Success = 1
        | Pending = 10
        | Failed = 100

    [<AllowNullLiteral>]
    type TodOptimizerResponseItem() = 
        inherit TodOptimizerRequestItem()
        member val ChargeState:Decimal = new Decimal() with get,set
        member val Charging:Decimal = new Decimal() with get,set
        member val Loss:Decimal = new Decimal() with get,set
        member val ChargeRate:Decimal = new Decimal() with get,set

    [<AllowNullLiteral>]
    type TodOptimizerResponse() = 
        member val Status:ApiResponseStatus = new ApiResponseStatus() with get,set
        member val Message:String = null with get,set
        member val ApiActionId:Guid = new Guid() with get,set
        member val TestItems:ResizeArray<TodOptimizerResponseItem> = new ResizeArray<TodOptimizerResponseItem>() with get,set

F# TODOptimizerRequest DTOs

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

HTTP + OTHER

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

POST /optimizer/tod HTTP/1.1 
Host: dev-optimization.power.dev 
Accept: text/jsonl
Content-Type: text/jsonl
Content-Length: length

{"projectId":"00000000000000000000000000000000","chargeDischargeLimit":0,"batteryCapacity":0,"chargeEfficiency":0,"dischargeEfficiency":0,"paraciticLossesOperation":0,"paraciticLossesResting":0,"hvacLosses":0,"acCablingLosses":0,"transformatorLosses":0,"thermalLosses":0,"unavailabilityLoss":0,"otherLosses":0,"enableCapacity":false,"apiActionId":"00000000000000000000000000000000"}
HTTP/1.1 200 OK
Content-Type: text/jsonl
Content-Length: length

{"status":"Undefined","message":"String","apiActionId":"00000000000000000000000000000000","testItems":[{"chargeState":0,"charging":0,"loss":0,"chargeRate":0,"year":0,"month":0,"hour":0,"weekDay":0,"energyPrice":0,"capacityPrice":0}]}