Power.Dev Optimization Services

<back to all web services

CommonOptimizerRequest

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

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

    [<AllowNullLiteral>]
    type CommonOptimizerPortalRequestBase() = 
        member val ProjectId:Guid = new Guid() with get,set
        member val IsBatchSimulation:Boolean = new Boolean() with get,set
        member val Force:Boolean = new Boolean() with get,set
        member val DisableEBSSpot:Boolean = new Boolean() with get,set
        member val IsServerless:Boolean = new Boolean() with get,set
        member val ApiActionId:Guid = new Guid() with get,set
        member val NodeId:Int32 = new Int32() with get,set
        member val ParallelProject:Int32 = new Int32() with get,set
        member val ParallelYears:Int32 = new Int32() with get,set
        member val EnsureExlusive:Int32 = new Int32() with get,set

    [<AllowNullLiteral>]
    type CommonOptimizerRequest() = 
        inherit CommonOptimizerPortalRequestBase()

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

    type BatterySimulationType =
        | Undefined = 0
        | SingleRun = 1
        | BatchSimulation = 2
        | BatchSub = 21
        | Siting = 100

    type BatteryProjectGroup =
        | Undefined = 0
        | StandAlone = 1
        | FTM = 2
        | BTM = 3

    type BatteryProjectAction =
        | Undefined = 0
        | Arbitrage = 1
        | PeakShaving = 2
        | Smooting = 3
        | Firming = 4

    type DataProvider =
        | Undefined = 0
        | SPP = 1
        | ERCOT = 2
        | MISO = 3
        | CAISO = 4
        | PJM = 5
        | ISONE = 6
        | NYISO = 7
        | NW = 8
        | SW = 9
        | SE = 10
        | AESO = 11
        | IESO = 12
        | CENACE = 20
        | NONISO = 99
        | EIA = 100
        | PNM = 150
        | NREL = 200
        | NOAA = 210
        | ENTSOE = 1000
        | EPIAS = 1010
        | SELF = 10000

    type BatteryDataSoruce =
        | Undefined = 0
        | Merchant = 1
        | Future = 2
        | TOD = 3

    type PriceMarketType =
        | Undefined = 0
        | Realtime = 1
        | DayAhead = 10
        | DART = 101

    type TimeGranularity =
        | Undefined = 0
        | hourly = 1
        | daily = 2
        | weekly = 3
        | monthy = 4
        | yearly = 5
        | fivemin = 10
        | tenmin = 11
        | fifteenmin = 12
        | halfhour = 13
        | quarterly = 14
        | twohours = 21
        | threehours = 22
        | fourhours = 24
        | sixhours = 26
        | eighthours = 28
        | twelvehours = 32
        | irregular = 100

    type BooleanValue =
        | Undefined = 0
        | Yes = 1
        | No = 2
        | Custom = 3

    type CapacityMethod =
        | Undefined = 0
        | Annual = 1
        | Tod = 2
        | Schedule = 3

    type BatteryProductionDataSource =
        | Undefined = 0
        | SetClosest = 1
        | UploadedFile = 2

    type PowerPlantType =
        | Undefined = 0
        | Solar = 1
        | Wind = 2
        | Hybrid = 3

    type RevenueStackingMode =
        | SolveWithoutAncillary = 0
        | SolveWithAncillary = 1

    [<AllowNullLiteral>]
    type BatteryProjectForOptimizer() = 
        member val ProjectId:Guid = new Guid() with get,set
        member val Version:String = null with get,set
        member val BaseId:Guid = new Guid() with get,set
        member val AltId:Int32 = new Int32() with get,set
        member val SimulationType:BatterySimulationType = new BatterySimulationType() with get,set
        member val ProjectGroup:BatteryProjectGroup = new BatteryProjectGroup() with get,set
        member val ProjectAction:BatteryProjectAction = new BatteryProjectAction() with get,set
        member val Iso:DataProvider = new DataProvider() with get,set
        member val Name:String = null with get,set
        member val BaseNodeId:Int32 = new Int32() with get,set
        member val OrgNodeId:Int32 = new Int32() with get,set
        member val BaseZoneId:Int32 = new Int32() with get,set
        member val DataSource:BatteryDataSoruce = new BatteryDataSoruce() with get,set
        member val BaseMarket:PriceMarketType = new PriceMarketType() with get,set
        member val PriceGranularity:TimeGranularity = new TimeGranularity() with get,set
        member val StartDate:DateTime = new DateTime() with get,set
        member val EndDate:DateTime = new DateTime() with get,set
        member val BatteryCapacity:Decimal = new Decimal() with get,set
        member val InterconnectionLimit:Decimal = new Decimal() with get,set
        member val NamepaletCapacity:Decimal = new Decimal() with get,set
        [<Ignore>]
        member val ChargeDischargeLimit:Decimal = new Decimal() with get,set

        [<Ignore>]
        member val BaseCapacityRate:Decimal = new Decimal() with get,set

        [<Ignore>]
        member val CapacityRate: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 OtherLosses:Decimal = new Decimal() with get,set
        member val UseEnergy:BooleanValue = new BooleanValue() with get,set
        member val UseCapacity:BooleanValue = new BooleanValue() with get,set
        member val CapacityBasis:CapacityMethod = new CapacityMethod() with get,set
        member val CapacityPayment:Decimal = new Decimal() with get,set
        member val NetCapacityFactor:Decimal = new Decimal() with get,set
        member val UseAncillary:BooleanValue = new BooleanValue() with get,set
        member val ProductionDataSource:BatteryProductionDataSource = new BatteryProductionDataSource() with get,set
        member val PowerPlantType:PowerPlantType = new PowerPlantType() with get,set
        member val SolarAcCapacity:Decimal = new Decimal() with get,set
        member val SolarDcCapacity:Decimal = new Decimal() with get,set
        member val WindAcCapacity:Decimal = new Decimal() with get,set
        [<Ignore>]
        member val SolarCapacityRate:Decimal = new Decimal() with get,set

        [<Ignore>]
        member val WindCapacityRate:Decimal = new Decimal() with get,set

        member val Status:Int32 = new Int32() with get,set
        member val SimulationStatus:Int32 = new Int32() with get,set
        member val LastSimulationDate:DateTime = new DateTime() with get,set
        member val DataStartDate:DateTime = new DateTime() with get,set
        member val DataEndDate:DateTime = new DateTime() with get,set
        member val SolarId:Int32 = new Int32() with get,set
        member val WindId:Int32 = new Int32() with get,set
        member val LmpFileId:Int32 = new Int32() with get,set
        member val ProductionFileId:Int32 = new Int32() with get,set
        member val LoadFileId:Int32 = new Int32() with get,set
        member val CapacityFileId:Int32 = new Int32() with get,set
        member val NodeAltId:Int32 = new Int32() with get,set
        member val NodeRefId:Int32 = new Int32() with get,set
        member val UseRegup:Decimal = new Decimal() with get,set
        member val UseRegdown:Decimal = new Decimal() with get,set
        member val UseSpinning:Decimal = new Decimal() with get,set
        member val UseNonSpinning:Decimal = new Decimal() with get,set
        member val SolarDegredation:Decimal = new Decimal() with get,set
        member val BatteryDegredation:Decimal = new Decimal() with get,set
        member val Augmentation:Decimal = new Decimal() with get,set
        member val AugmentationFrequency:Decimal = new Decimal() with get,set
        member val EnergyIncrement:Decimal = new Decimal() with get,set
        member val AncillaryIncrement:Decimal = new Decimal() with get,set
        member val EnableGridArbitrage:Int32 = new Int32() with get,set
        member val IncrementReferanceYear:Int32 = new Int32() with get,set
        member val RepresentativeYear:Int32 = new Int32() with get,set
        member val UseFutureData:Int32 = new Int32() with get,set
        member val MaxDailyCycle:Decimal = new Decimal() with get,set
        member val MinDailyProfitPerMw:Decimal = new Decimal() with get,set
        member val AncillaryFileId:Int32 = new Int32() with get,set
        member val MaxChargingPriceCap:Decimal = new Decimal() with get,set
        member val MaxDischargingPriceCap:Decimal = new Decimal() with get,set
        member val MaxAncillaryPriceCap:Decimal = new Decimal() with get,set
        member val RevenueStackingMode:RevenueStackingMode = new RevenueStackingMode() with get,set
        member val OptimizationQuality:Int32 = new Int32() with get,set
        member val UseInternalSolver:Boolean = new Boolean() with get,set

    [<AllowNullLiteral>]
    type CommonOptimizerResponse() = 
        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 Detail:String = null with get,set
        member val Items:IEnumerable<BatteryProjectForOptimizer> = null with get,set

F# CommonOptimizerRequest DTOs

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

HTTP + CSV

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

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

{"projectId":"00000000000000000000000000000000","isBatchSimulation":false,"force":false,"disableEBSSpot":false,"isServerless":false,"apiActionId":"00000000000000000000000000000000","nodeId":0,"parallelProject":0,"parallelYears":0,"ensureExlusive":0}
HTTP/1.1 200 OK
Content-Type: text/csv
Content-Length: length

{"status":"Undefined","message":"String","apiActionId":"00000000000000000000000000000000","detail":"String"}