Power.Dev Optimization Services

<back to all web services

CommonOptimizerMonthlyRequest

The following routes are available for this service:
POST/optimizer/monthly
"use strict";
/** @typedef {number} */
export var DataProvider;
(function (DataProvider) {
    DataProvider[DataProvider["Undefined"] = 0] = "Undefined"
    DataProvider[DataProvider["SPP"] = 1] = "SPP"
    DataProvider[DataProvider["ERCOT"] = 2] = "ERCOT"
    DataProvider[DataProvider["MISO"] = 3] = "MISO"
    DataProvider[DataProvider["CAISO"] = 4] = "CAISO"
    DataProvider[DataProvider["PJM"] = 5] = "PJM"
    DataProvider[DataProvider["ISONE"] = 6] = "ISONE"
    DataProvider[DataProvider["NYISO"] = 7] = "NYISO"
    DataProvider[DataProvider["NW"] = 8] = "NW"
    DataProvider[DataProvider["SW"] = 9] = "SW"
    DataProvider[DataProvider["SE"] = 10] = "SE"
    DataProvider[DataProvider["AESO"] = 11] = "AESO"
    DataProvider[DataProvider["IESO"] = 12] = "IESO"
    DataProvider[DataProvider["CENACE"] = 20] = "CENACE"
    DataProvider[DataProvider["NONISO"] = 99] = "NONISO"
    DataProvider[DataProvider["EIA"] = 100] = "EIA"
    DataProvider[DataProvider["PNM"] = 150] = "PNM"
    DataProvider[DataProvider["NREL"] = 200] = "NREL"
    DataProvider[DataProvider["NOAA"] = 210] = "NOAA"
    DataProvider[DataProvider["ENTSOE"] = 1000] = "ENTSOE"
    DataProvider[DataProvider["EPIAS"] = 1010] = "EPIAS"
    DataProvider[DataProvider["SELF"] = 10000] = "SELF"
})(DataProvider || (DataProvider = {}));
/** @typedef {'Undefined'|'Yes'|'No'|'Custom'} */
export var BooleanValue;
(function (BooleanValue) {
    BooleanValue["Undefined"] = "Undefined"
    BooleanValue["Yes"] = "Yes"
    BooleanValue["No"] = "No"
    BooleanValue["Custom"] = "Custom"
})(BooleanValue || (BooleanValue = {}));
/** @typedef {number} */
export var PriceMarketType;
(function (PriceMarketType) {
    PriceMarketType[PriceMarketType["Undefined"] = 0] = "Undefined"
    PriceMarketType[PriceMarketType["Realtime"] = 1] = "Realtime"
    PriceMarketType[PriceMarketType["DayAhead"] = 10] = "DayAhead"
    PriceMarketType[PriceMarketType["DART"] = 101] = "DART"
})(PriceMarketType || (PriceMarketType = {}));
export class BatteryProjectTodItem {
    /** @param {{month?:number,weekDay?:number,hour?:number,price?:number,id?:string}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {number} */
    month;
    /** @type {number} */
    weekDay;
    /** @type {number} */
    hour;
    /** @type {number} */
    price;
    /** @type {string} */
    id;
}
/** @typedef {'SolveWithoutAncillary'|'SolveWithAncillary'} */
export var RevenueStackingMode;
(function (RevenueStackingMode) {
    RevenueStackingMode["SolveWithoutAncillary"] = "SolveWithoutAncillary"
    RevenueStackingMode["SolveWithAncillary"] = "SolveWithAncillary"
})(RevenueStackingMode || (RevenueStackingMode = {}));
export class MonthlyRequestBase {
    /** @param {{projectId?:string,nodeAltId?:number,iso?:DataProvider,useEnergy?:BooleanValue,useAncillary?:BooleanValue,useCapacityTod?:boolean,baseMarket?:PriceMarketType,capacityTODs?:BatteryProjectTodItem[],useRegup?:number,useRegdown?:number,useSpinning?:number,useNonSpinning?:number,paraciticLossesOperation?:number,paraciticLossesResting?:number,hvacLosses?:number,acCablingLosses?:number,transformatorLosses?:number,otherLosses?:number,representativeYear?:number,incrementReferanceYear?:number,useFutureData?:number,maxDailyCycle?:number,minDailyProfitPerMw?:number,ancillaryFileId?:number,lmpFileId?:number,maxChargingPriceCap?:number,maxDischargingPriceCap?:number,maxAncillaryPriceCap?:number,revenueStackingMode?:RevenueStackingMode,optimizationQuality?:number,ensureExlusive?:number,nodeRefId?:number,useInternalSolver?:boolean}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {string} */
    projectId;
    /** @type {number} */
    nodeAltId;
    /** @type {DataProvider} */
    iso;
    /** @type {BooleanValue} */
    useEnergy;
    /** @type {BooleanValue} */
    useAncillary;
    /** @type {boolean} */
    useCapacityTod;
    /** @type {PriceMarketType} */
    baseMarket;
    /** @type {BatteryProjectTodItem[]} */
    capacityTODs;
    /** @type {number} */
    useRegup;
    /** @type {number} */
    useRegdown;
    /** @type {number} */
    useSpinning;
    /** @type {number} */
    useNonSpinning;
    /** @type {number} */
    paraciticLossesOperation;
    /** @type {number} */
    paraciticLossesResting;
    /** @type {number} */
    hvacLosses;
    /** @type {number} */
    acCablingLosses;
    /** @type {number} */
    transformatorLosses;
    /** @type {number} */
    otherLosses;
    /** @type {number} */
    representativeYear;
    /** @type {number} */
    incrementReferanceYear;
    /** @type {number} */
    useFutureData;
    /** @type {number} */
    maxDailyCycle;
    /** @type {number} */
    minDailyProfitPerMw;
    /** @type {number} */
    ancillaryFileId;
    /** @type {number} */
    lmpFileId;
    /** @type {number} */
    maxChargingPriceCap;
    /** @type {number} */
    maxDischargingPriceCap;
    /** @type {number} */
    maxAncillaryPriceCap;
    /** @type {RevenueStackingMode} */
    revenueStackingMode;
    /** @type {number} */
    optimizationQuality;
    /** @type {number} */
    ensureExlusive;
    /** @type {number} */
    nodeRefId;
    /** @type {boolean} */
    useInternalSolver;
}
/** @typedef {'Undefined'|'Solar'|'Wind'|'Hybrid'} */
export var PowerPlantType;
(function (PowerPlantType) {
    PowerPlantType["Undefined"] = "Undefined"
    PowerPlantType["Solar"] = "Solar"
    PowerPlantType["Wind"] = "Wind"
    PowerPlantType["Hybrid"] = "Hybrid"
})(PowerPlantType || (PowerPlantType = {}));
export class BatteryScenarioKeyGroup {
    /** @param {{keyId?:number,year?:number,nodeId?:number,provider?:DataProvider,zoneId?:number,plantType?:PowerPlantType,solarId?:number,windId?:number,isServerless?:boolean}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {number} */
    keyId;
    /** @type {number} */
    year;
    /** @type {number} */
    nodeId;
    /** @type {DataProvider} */
    provider;
    /** @type {number} */
    zoneId;
    /** @type {PowerPlantType} */
    plantType;
    /** @type {number} */
    solarId;
    /** @type {number} */
    windId;
    /** @type {boolean} */
    isServerless;
}
/** @typedef {'Undefined'|'Optimization'|'Sum'|'OptiSum'|'FullTod'|'CapacityTod'} */
export var BatteryScenarioType;
(function (BatteryScenarioType) {
    BatteryScenarioType["Undefined"] = "Undefined"
    BatteryScenarioType["Optimization"] = "Optimization"
    BatteryScenarioType["Sum"] = "Sum"
    BatteryScenarioType["OptiSum"] = "OptiSum"
    BatteryScenarioType["FullTod"] = "FullTod"
    BatteryScenarioType["CapacityTod"] = "CapacityTod"
})(BatteryScenarioType || (BatteryScenarioType = {}));
export class BatteryScenarioKeyItem {
    /** @param {{projectId?:string,keyId?:number,keyType?:BatteryScenarioType,recordKey?:string,jobStatus?:number,status?:number,minDate?:string,maxDate?:string,year?:number,yoyStatus?:number,usableCapacity?:number,usableCapacityFactor?:number,solarUsableCapacity?:number,solarUsableCapacityFactor?:number,baseMarket?:PriceMarketType,baseCapacityRate?:number,capacityRate?:number,solarCapacityRate?:number,windCapacityRate?:number,chargeEfficinecy?:number,dischargeEfficinecy?:number,nodeId?:number,provider?:DataProvider,zoneId?:number,lmpFileId?:number,productionFileId?:number,loadFileId?:number,capacityFileId?:number,plantType?:PowerPlantType,solarId?:number,windId?:number,ancillaryIncrementFactor?:number,energyIncrementFactor?:number,capacityIncrementFactor?:number}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {string} */
    projectId;
    /** @type {number} */
    keyId;
    /** @type {BatteryScenarioType} */
    keyType;
    /** @type {string} */
    recordKey;
    /** @type {number} */
    jobStatus;
    /** @type {number} */
    status;
    /** @type {string} */
    minDate;
    /** @type {string} */
    maxDate;
    /** @type {number} */
    year;
    /** @type {number} */
    yoyStatus;
    /** @type {number} */
    usableCapacity;
    /** @type {number} */
    usableCapacityFactor;
    /** @type {number} */
    solarUsableCapacity;
    /** @type {number} */
    solarUsableCapacityFactor;
    /** @type {PriceMarketType} */
    baseMarket;
    /** @type {number} */
    baseCapacityRate;
    /** @type {number} */
    capacityRate;
    /** @type {number} */
    solarCapacityRate;
    /** @type {number} */
    windCapacityRate;
    /** @type {number} */
    chargeEfficinecy;
    /** @type {number} */
    dischargeEfficinecy;
    /** @type {number} */
    nodeId;
    /** @type {DataProvider} */
    provider;
    /** @type {number} */
    zoneId;
    /** @type {number} */
    lmpFileId;
    /** @type {number} */
    productionFileId;
    /** @type {number} */
    loadFileId;
    /** @type {number} */
    capacityFileId;
    /** @type {PowerPlantType} */
    plantType;
    /** @type {number} */
    solarId;
    /** @type {number} */
    windId;
    /** @type {number} */
    ancillaryIncrementFactor;
    /** @type {number} */
    energyIncrementFactor;
    /** @type {number} */
    capacityIncrementFactor;
}
/** @typedef {'Undefined'|'StandAlone'|'FTM'|'BTM'} */
export var BatteryProjectGroup;
(function (BatteryProjectGroup) {
    BatteryProjectGroup["Undefined"] = "Undefined"
    BatteryProjectGroup["StandAlone"] = "StandAlone"
    BatteryProjectGroup["FTM"] = "FTM"
    BatteryProjectGroup["BTM"] = "BTM"
})(BatteryProjectGroup || (BatteryProjectGroup = {}));
export class CommonOptimizerMonthlyRequest extends MonthlyRequestBase {
    /** @param {{month?:number,group?:BatteryScenarioKeyGroup,key?:BatteryScenarioKeyItem,projectGroup?:BatteryProjectGroup,projectId?:string,nodeAltId?:number,iso?:DataProvider,useEnergy?:BooleanValue,useAncillary?:BooleanValue,useCapacityTod?:boolean,baseMarket?:PriceMarketType,capacityTODs?:BatteryProjectTodItem[],useRegup?:number,useRegdown?:number,useSpinning?:number,useNonSpinning?:number,paraciticLossesOperation?:number,paraciticLossesResting?:number,hvacLosses?:number,acCablingLosses?:number,transformatorLosses?:number,otherLosses?:number,representativeYear?:number,incrementReferanceYear?:number,useFutureData?:number,maxDailyCycle?:number,minDailyProfitPerMw?:number,ancillaryFileId?:number,lmpFileId?:number,maxChargingPriceCap?:number,maxDischargingPriceCap?:number,maxAncillaryPriceCap?:number,revenueStackingMode?:RevenueStackingMode,optimizationQuality?:number,ensureExlusive?:number,nodeRefId?:number,useInternalSolver?:boolean}} [init] */
    constructor(init) { super(init); Object.assign(this, init) }
    /** @type {number} */
    month;
    /** @type {BatteryScenarioKeyGroup} */
    group;
    /** @type {BatteryScenarioKeyItem} */
    key;
    /** @type {BatteryProjectGroup} */
    projectGroup;
}
export class MonthlyApiStatusResponse {
    /** @param {{failedCount?:number}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {number} */
    failedCount;
}

JavaScript CommonOptimizerMonthlyRequest DTOs

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

HTTP + XML

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

POST /optimizer/monthly HTTP/1.1 
Host: dev-optimization.power.dev 
Accept: application/xml
Content-Type: application/xml
Content-Length: length

<CommonOptimizerMonthlyRequest xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/powerDev.Optimization.ServiceModel">
  <AcCablingLosses xmlns="http://schemas.datacontract.org/2004/07/powerDev.Optimization.Models">0</AcCablingLosses>
  <AncillaryFileId xmlns="http://schemas.datacontract.org/2004/07/powerDev.Optimization.Models">0</AncillaryFileId>
  <BaseMarket xmlns="http://schemas.datacontract.org/2004/07/powerDev.Optimization.Models">Undefined</BaseMarket>
  <CapacityTODs xmlns:d2p1="http://schemas.datacontract.org/2004/07/powerDev.Common.Models" i:nil="true" xmlns="http://schemas.datacontract.org/2004/07/powerDev.Optimization.Models" />
  <EnsureExlusive xmlns="http://schemas.datacontract.org/2004/07/powerDev.Optimization.Models">0</EnsureExlusive>
  <HVACLosses xmlns="http://schemas.datacontract.org/2004/07/powerDev.Optimization.Models">0</HVACLosses>
  <IncrementReferanceYear xmlns="http://schemas.datacontract.org/2004/07/powerDev.Optimization.Models">0</IncrementReferanceYear>
  <Iso xmlns="http://schemas.datacontract.org/2004/07/powerDev.Optimization.Models">Undefined</Iso>
  <LmpFileId xmlns="http://schemas.datacontract.org/2004/07/powerDev.Optimization.Models">0</LmpFileId>
  <MaxAncillaryPriceCap xmlns="http://schemas.datacontract.org/2004/07/powerDev.Optimization.Models">0</MaxAncillaryPriceCap>
  <MaxChargingPriceCap xmlns="http://schemas.datacontract.org/2004/07/powerDev.Optimization.Models">0</MaxChargingPriceCap>
  <MaxDailyCycle xmlns="http://schemas.datacontract.org/2004/07/powerDev.Optimization.Models">0</MaxDailyCycle>
  <MaxDischargingPriceCap xmlns="http://schemas.datacontract.org/2004/07/powerDev.Optimization.Models">0</MaxDischargingPriceCap>
  <MinDailyProfitPerMw xmlns="http://schemas.datacontract.org/2004/07/powerDev.Optimization.Models">0</MinDailyProfitPerMw>
  <NodeAltId xmlns="http://schemas.datacontract.org/2004/07/powerDev.Optimization.Models">0</NodeAltId>
  <NodeRefId xmlns="http://schemas.datacontract.org/2004/07/powerDev.Optimization.Models">0</NodeRefId>
  <OptimizationQuality xmlns="http://schemas.datacontract.org/2004/07/powerDev.Optimization.Models">0</OptimizationQuality>
  <OtherLosses xmlns="http://schemas.datacontract.org/2004/07/powerDev.Optimization.Models">0</OtherLosses>
  <ParaciticLossesOperation xmlns="http://schemas.datacontract.org/2004/07/powerDev.Optimization.Models">0</ParaciticLossesOperation>
  <ParaciticLossesResting xmlns="http://schemas.datacontract.org/2004/07/powerDev.Optimization.Models">0</ParaciticLossesResting>
  <ProjectId xmlns="http://schemas.datacontract.org/2004/07/powerDev.Optimization.Models">00000000-0000-0000-0000-000000000000</ProjectId>
  <RepresentativeYear xmlns="http://schemas.datacontract.org/2004/07/powerDev.Optimization.Models">0</RepresentativeYear>
  <RevenueStackingMode xmlns="http://schemas.datacontract.org/2004/07/powerDev.Optimization.Models">SolveWithoutAncillary</RevenueStackingMode>
  <TransformatorLosses xmlns="http://schemas.datacontract.org/2004/07/powerDev.Optimization.Models">0</TransformatorLosses>
  <UseAncillary xmlns="http://schemas.datacontract.org/2004/07/powerDev.Optimization.Models">Undefined</UseAncillary>
  <UseCapacityTod xmlns="http://schemas.datacontract.org/2004/07/powerDev.Optimization.Models">false</UseCapacityTod>
  <UseEnergy xmlns="http://schemas.datacontract.org/2004/07/powerDev.Optimization.Models">Undefined</UseEnergy>
  <UseFutureData xmlns="http://schemas.datacontract.org/2004/07/powerDev.Optimization.Models">0</UseFutureData>
  <UseInternalSolver xmlns="http://schemas.datacontract.org/2004/07/powerDev.Optimization.Models">false</UseInternalSolver>
  <UseNonSpinning xmlns="http://schemas.datacontract.org/2004/07/powerDev.Optimization.Models">0</UseNonSpinning>
  <UseRegdown xmlns="http://schemas.datacontract.org/2004/07/powerDev.Optimization.Models">0</UseRegdown>
  <UseRegup xmlns="http://schemas.datacontract.org/2004/07/powerDev.Optimization.Models">0</UseRegup>
  <UseSpinning xmlns="http://schemas.datacontract.org/2004/07/powerDev.Optimization.Models">0</UseSpinning>
  <Group xmlns:d2p1="http://schemas.datacontract.org/2004/07/powerDev.Common.Models">
    <d2p1:IsServerless>false</d2p1:IsServerless>
    <d2p1:KeyId>0</d2p1:KeyId>
    <d2p1:NodeId>0</d2p1:NodeId>
    <d2p1:PlantType>Undefined</d2p1:PlantType>
    <d2p1:Provider>Undefined</d2p1:Provider>
    <d2p1:SolarId>0</d2p1:SolarId>
    <d2p1:WindId>0</d2p1:WindId>
    <d2p1:Year>0</d2p1:Year>
    <d2p1:ZoneId>0</d2p1:ZoneId>
  </Group>
  <Key xmlns:d2p1="http://schemas.datacontract.org/2004/07/powerDev.Common.Models">
    <d2p1:AncillaryIncrementFactor>0</d2p1:AncillaryIncrementFactor>
    <d2p1:BaseCapacityRate>0</d2p1:BaseCapacityRate>
    <d2p1:BaseMarket>Undefined</d2p1:BaseMarket>
    <d2p1:CapacityFileId>0</d2p1:CapacityFileId>
    <d2p1:CapacityIncrementFactor>0</d2p1:CapacityIncrementFactor>
    <d2p1:CapacityRate>0</d2p1:CapacityRate>
    <d2p1:ChargeEfficinecy>0</d2p1:ChargeEfficinecy>
    <d2p1:DischargeEfficinecy>0</d2p1:DischargeEfficinecy>
    <d2p1:EnergyIncrementFactor>0</d2p1:EnergyIncrementFactor>
    <d2p1:JobStatus>0</d2p1:JobStatus>
    <d2p1:KeyId>0</d2p1:KeyId>
    <d2p1:KeyType>Undefined</d2p1:KeyType>
    <d2p1:LmpFileId>0</d2p1:LmpFileId>
    <d2p1:LoadFileId>0</d2p1:LoadFileId>
    <d2p1:MaxDate>0001-01-01T00:00:00</d2p1:MaxDate>
    <d2p1:MinDate>0001-01-01T00:00:00</d2p1:MinDate>
    <d2p1:NodeId>0</d2p1:NodeId>
    <d2p1:PlantType>Undefined</d2p1:PlantType>
    <d2p1:ProductionFileId>0</d2p1:ProductionFileId>
    <d2p1:ProjectId>00000000-0000-0000-0000-000000000000</d2p1:ProjectId>
    <d2p1:Provider>Undefined</d2p1:Provider>
    <d2p1:RecordKey>String</d2p1:RecordKey>
    <d2p1:SolarCapacityRate>0</d2p1:SolarCapacityRate>
    <d2p1:SolarId>0</d2p1:SolarId>
    <d2p1:SolarUsableCapacity>0</d2p1:SolarUsableCapacity>
    <d2p1:SolarUsableCapacityFactor>0</d2p1:SolarUsableCapacityFactor>
    <d2p1:Status>0</d2p1:Status>
    <d2p1:UsableCapacity>0</d2p1:UsableCapacity>
    <d2p1:UsableCapacityFactor>0</d2p1:UsableCapacityFactor>
    <d2p1:WindCapacityRate>0</d2p1:WindCapacityRate>
    <d2p1:WindId>0</d2p1:WindId>
    <d2p1:Year>0</d2p1:Year>
    <d2p1:YoyStatus>0</d2p1:YoyStatus>
    <d2p1:ZoneId>0</d2p1:ZoneId>
  </Key>
  <Month>0</Month>
  <ProjectGroup>Undefined</ProjectGroup>
</CommonOptimizerMonthlyRequest>
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length

<MonthlyApiStatusResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/powerDev.Optimization.Models">
  <FailedCount>0</FailedCount>
</MonthlyApiStatusResponse>