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
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"}