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 .jsv suffix or ?format=jsv
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: text/jsv
Content-Type: text/jsv
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: text/jsv Content-Length: length { failedCount: 0, message: String }