POST | /optimizer/yearly |
---|
namespace powerDev.Optimization.ServiceModel
open System
open System.Collections
open System.Collections.Generic
open System.Runtime.Serialization
open ServiceStack
open ServiceStack.DataAnnotations
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 BooleanValue =
| Undefined = 0
| Yes = 1
| No = 2
| Custom = 3
type PriceMarketType =
| Undefined = 0
| Realtime = 1
| DayAhead = 10
| DART = 101
[<AllowNullLiteral>]
type BatteryProjectTodItem() =
member val Month:Int32 = new Int32() with get,set
member val WeekDay:Int32 = new Int32() with get,set
member val Hour:Int32 = new Int32() with get,set
member val Price:Decimal = new Decimal() with get,set
[<Ignore>]
member val Id:String = null with get,set
type RevenueStackingMode =
| SolveWithoutAncillary = 0
| SolveWithAncillary = 1
[<AllowNullLiteral>]
type MonthlyRequestBase() =
member val ProjectId:Guid = new Guid() with get,set
member val NodeAltId:Int32 = new Int32() with get,set
member val Iso:DataProvider = new DataProvider() with get,set
member val UseEnergy:BooleanValue = new BooleanValue() with get,set
member val UseAncillary:BooleanValue = new BooleanValue() with get,set
member val UseCapacityTod:Boolean = new Boolean() with get,set
member val BaseMarket:PriceMarketType = new PriceMarketType() with get,set
member val CapacityTODs:IEnumerable<BatteryProjectTodItem> = null 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 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 OtherLosses:Decimal = new Decimal() with get,set
member val RepresentativeYear:Int32 = new Int32() with get,set
member val IncrementReferanceYear: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 LmpFileId: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 EnsureExlusive:Int32 = new Int32() with get,set
member val NodeRefId:Int32 = new Int32() with get,set
member val UseInternalSolver:Boolean = new Boolean() with get,set
type PowerPlantType =
| Undefined = 0
| Solar = 1
| Wind = 2
| Hybrid = 3
[<AllowNullLiteral>]
type BatteryScenarioKeyGroup() =
member val KeyId:Int32 = new Int32() with get,set
member val Year:Int32 = new Int32() with get,set
member val NodeId:Int32 = new Int32() with get,set
member val Provider:DataProvider = new DataProvider() with get,set
member val ZoneId:Int32 = new Int32() with get,set
member val PlantType:PowerPlantType = new PowerPlantType() with get,set
member val SolarId:Int32 = new Int32() with get,set
member val WindId:Int32 = new Int32() with get,set
member val IsServerless:Boolean = new Boolean() with get,set
type BatteryScenarioType =
| Undefined = 0
| Optimization = 1
| Sum = 2
| OptiSum = 3
| FullTod = 4
| CapacityTod = 5
[<AllowNullLiteral>]
type BatteryScenarioKeyItem() =
member val ProjectId:Guid = new Guid() with get,set
member val KeyId:Int32 = new Int32() with get,set
member val KeyType:BatteryScenarioType = new BatteryScenarioType() with get,set
member val RecordKey:String = null with get,set
member val JobStatus:Int32 = new Int32() with get,set
member val Status:Int32 = new Int32() with get,set
member val MinDate:DateTime = new DateTime() with get,set
member val MaxDate:DateTime = new DateTime() with get,set
member val Year:Int32 = new Int32() with get,set
member val YoyStatus:Int32 = new Int32() with get,set
member val UsableCapacity:Decimal = new Decimal() with get,set
member val UsableCapacityFactor:Decimal = new Decimal() with get,set
member val SolarUsableCapacity:Decimal = new Decimal() with get,set
member val SolarUsableCapacityFactor:Decimal = new Decimal() with get,set
member val BaseMarket:PriceMarketType = new PriceMarketType() with get,set
member val BaseCapacityRate:Decimal = new Decimal() with get,set
member val CapacityRate:Decimal = new Decimal() with get,set
member val SolarCapacityRate:Decimal = new Decimal() with get,set
member val WindCapacityRate:Decimal = new Decimal() with get,set
member val ChargeEfficinecy:Decimal = new Decimal() with get,set
member val DischargeEfficinecy:Decimal = new Decimal() with get,set
member val NodeId:Int32 = new Int32() with get,set
member val Provider:DataProvider = new DataProvider() with get,set
member val ZoneId: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 PlantType:PowerPlantType = new PowerPlantType() with get,set
member val SolarId:Int32 = new Int32() with get,set
member val WindId:Int32 = new Int32() with get,set
member val AncillaryIncrementFactor:Decimal = new Decimal() with get,set
member val EnergyIncrementFactor:Decimal = new Decimal() with get,set
member val CapacityIncrementFactor:Decimal = new Decimal() with get,set
type BatteryProjectGroup =
| Undefined = 0
| StandAlone = 1
| FTM = 2
| BTM = 3
[<AllowNullLiteral>]
type CommonOptimizerYearlyRequest() =
inherit MonthlyRequestBase()
member val Month:Int32 = new Int32() with get,set
member val Group:BatteryScenarioKeyGroup = null with get,set
member val Key:BatteryScenarioKeyItem = null with get,set
member val ProjectGroup:BatteryProjectGroup = new BatteryProjectGroup() with get,set
[<AllowNullLiteral>]
type YearlyApiStatusResponse() =
member val FailedCount:Int32 = new Int32() with get,set
member val Message:String = null with get,set
F# CommonOptimizerYearlyRequest 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
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /optimizer/yearly HTTP/1.1
Host: dev-optimization.power.dev
Accept: application/json
Content-Type: application/json
Content-Length: length
{"month":0,"group":{"keyId":0,"year":0,"nodeId":0,"provider":"Undefined","zoneId":0,"plantType":"Undefined","solarId":0,"windId":0,"isServerless":false},"key":{"projectId":"00000000000000000000000000000000","keyId":0,"keyType":"Undefined","recordKey":"String","jobStatus":0,"status":0,"year":0,"yoyStatus":0,"usableCapacity":0,"usableCapacityFactor":0,"solarUsableCapacity":0,"solarUsableCapacityFactor":0,"baseMarket":"Undefined","baseCapacityRate":0,"capacityRate":0,"solarCapacityRate":0,"windCapacityRate":0,"chargeEfficinecy":0,"dischargeEfficinecy":0,"nodeId":0,"provider":"Undefined","zoneId":0,"lmpFileId":0,"productionFileId":0,"loadFileId":0,"capacityFileId":0,"plantType":"Undefined","solarId":0,"windId":0,"ancillaryIncrementFactor":0,"energyIncrementFactor":0,"capacityIncrementFactor":0},"projectGroup":"Undefined","projectId":"00000000000000000000000000000000","nodeAltId":0,"iso":"Undefined","useEnergy":"Undefined","useAncillary":"Undefined","useCapacityTod":false,"baseMarket":"Undefined","useRegup":0,"useRegdown":0,"useSpinning":0,"useNonSpinning":0,"paraciticLossesOperation":0,"paraciticLossesResting":0,"hvacLosses":0,"acCablingLosses":0,"transformatorLosses":0,"otherLosses":0,"representativeYear":0,"incrementReferanceYear":0,"useFutureData":0,"maxDailyCycle":0,"minDailyProfitPerMw":0,"ancillaryFileId":0,"lmpFileId":0,"maxChargingPriceCap":0,"maxDischargingPriceCap":0,"maxAncillaryPriceCap":0,"revenueStackingMode":"SolveWithoutAncillary","optimizationQuality":0,"ensureExlusive":0,"nodeRefId":0,"useInternalSolver":false}
HTTP/1.1 200 OK Content-Type: application/json Content-Length: length {"failedCount":0,"message":"String"}