Power.Dev Optimization Services

<back to all web services

CommonOptimizerYearlyRequest

The following routes are available for this service:
POST/optimizer/yearly
import java.math.*;
import java.util.*;
import net.servicestack.client.*;

public class dtos
{

    public static class CommonOptimizerYearlyRequest extends MonthlyRequestBase
    {
        public Integer month = null;
        public BatteryScenarioKeyGroup group = null;
        public BatteryScenarioKeyItem key = null;
        public BatteryProjectGroup projectGroup = null;
        
        public Integer getMonth() { return month; }
        public CommonOptimizerYearlyRequest setMonth(Integer value) { this.month = value; return this; }
        public BatteryScenarioKeyGroup getGroup() { return group; }
        public CommonOptimizerYearlyRequest setGroup(BatteryScenarioKeyGroup value) { this.group = value; return this; }
        public BatteryScenarioKeyItem getKey() { return key; }
        public CommonOptimizerYearlyRequest setKey(BatteryScenarioKeyItem value) { this.key = value; return this; }
        public BatteryProjectGroup getProjectGroup() { return projectGroup; }
        public CommonOptimizerYearlyRequest setProjectGroup(BatteryProjectGroup value) { this.projectGroup = value; return this; }
    }

    public static class MonthlyRequestBase
    {
        public UUID projectId = null;
        public Integer nodeAltId = null;
        public DataProvider iso = null;
        public BooleanValue useEnergy = null;
        public BooleanValue useAncillary = null;
        public Boolean useCapacityTod = null;
        public PriceMarketType baseMarket = null;
        public ArrayList<BatteryProjectTodItem> capacityTODs = null;
        public BigDecimal useRegup = null;
        public BigDecimal useRegdown = null;
        public BigDecimal useSpinning = null;
        public BigDecimal useNonSpinning = null;
        public BigDecimal paraciticLossesOperation = null;
        public BigDecimal paraciticLossesResting = null;
        public BigDecimal hvacLosses = null;
        public BigDecimal acCablingLosses = null;
        public BigDecimal transformatorLosses = null;
        public BigDecimal otherLosses = null;
        public Integer representativeYear = null;
        public Integer incrementReferanceYear = null;
        public Integer useFutureData = null;
        public BigDecimal maxDailyCycle = null;
        public BigDecimal minDailyProfitPerMw = null;
        public Integer ancillaryFileId = null;
        public Integer lmpFileId = null;
        public BigDecimal maxChargingPriceCap = null;
        public BigDecimal maxDischargingPriceCap = null;
        public BigDecimal maxAncillaryPriceCap = null;
        public RevenueStackingMode revenueStackingMode = null;
        public Integer optimizationQuality = null;
        public Integer ensureExlusive = null;
        public Integer nodeRefId = null;
        public Boolean useInternalSolver = null;
        
        public UUID getProjectId() { return projectId; }
        public MonthlyRequestBase setProjectId(UUID value) { this.projectId = value; return this; }
        public Integer getNodeAltId() { return nodeAltId; }
        public MonthlyRequestBase setNodeAltId(Integer value) { this.nodeAltId = value; return this; }
        public DataProvider getIso() { return iso; }
        public MonthlyRequestBase setIso(DataProvider value) { this.iso = value; return this; }
        public BooleanValue isUseEnergy() { return useEnergy; }
        public MonthlyRequestBase setUseEnergy(BooleanValue value) { this.useEnergy = value; return this; }
        public BooleanValue isUseAncillary() { return useAncillary; }
        public MonthlyRequestBase setUseAncillary(BooleanValue value) { this.useAncillary = value; return this; }
        public Boolean isUseCapacityTod() { return useCapacityTod; }
        public MonthlyRequestBase setUseCapacityTod(Boolean value) { this.useCapacityTod = value; return this; }
        public PriceMarketType getBaseMarket() { return baseMarket; }
        public MonthlyRequestBase setBaseMarket(PriceMarketType value) { this.baseMarket = value; return this; }
        public ArrayList<BatteryProjectTodItem> getCapacityTODs() { return capacityTODs; }
        public MonthlyRequestBase setCapacityTODs(ArrayList<BatteryProjectTodItem> value) { this.capacityTODs = value; return this; }
        public BigDecimal getUseRegup() { return useRegup; }
        public MonthlyRequestBase setUseRegup(BigDecimal value) { this.useRegup = value; return this; }
        public BigDecimal getUseRegdown() { return useRegdown; }
        public MonthlyRequestBase setUseRegdown(BigDecimal value) { this.useRegdown = value; return this; }
        public BigDecimal getUseSpinning() { return useSpinning; }
        public MonthlyRequestBase setUseSpinning(BigDecimal value) { this.useSpinning = value; return this; }
        public BigDecimal getUseNonSpinning() { return useNonSpinning; }
        public MonthlyRequestBase setUseNonSpinning(BigDecimal value) { this.useNonSpinning = value; return this; }
        public BigDecimal getParaciticLossesOperation() { return paraciticLossesOperation; }
        public MonthlyRequestBase setParaciticLossesOperation(BigDecimal value) { this.paraciticLossesOperation = value; return this; }
        public BigDecimal getParaciticLossesResting() { return paraciticLossesResting; }
        public MonthlyRequestBase setParaciticLossesResting(BigDecimal value) { this.paraciticLossesResting = value; return this; }
        public BigDecimal getHvacLosses() { return hvacLosses; }
        public MonthlyRequestBase setHvacLosses(BigDecimal value) { this.hvacLosses = value; return this; }
        public BigDecimal getAcCablingLosses() { return acCablingLosses; }
        public MonthlyRequestBase setAcCablingLosses(BigDecimal value) { this.acCablingLosses = value; return this; }
        public BigDecimal getTransformatorLosses() { return transformatorLosses; }
        public MonthlyRequestBase setTransformatorLosses(BigDecimal value) { this.transformatorLosses = value; return this; }
        public BigDecimal getOtherLosses() { return otherLosses; }
        public MonthlyRequestBase setOtherLosses(BigDecimal value) { this.otherLosses = value; return this; }
        public Integer getRepresentativeYear() { return representativeYear; }
        public MonthlyRequestBase setRepresentativeYear(Integer value) { this.representativeYear = value; return this; }
        public Integer getIncrementReferanceYear() { return incrementReferanceYear; }
        public MonthlyRequestBase setIncrementReferanceYear(Integer value) { this.incrementReferanceYear = value; return this; }
        public Integer getUseFutureData() { return useFutureData; }
        public MonthlyRequestBase setUseFutureData(Integer value) { this.useFutureData = value; return this; }
        public BigDecimal getMaxDailyCycle() { return maxDailyCycle; }
        public MonthlyRequestBase setMaxDailyCycle(BigDecimal value) { this.maxDailyCycle = value; return this; }
        public BigDecimal getMinDailyProfitPerMw() { return minDailyProfitPerMw; }
        public MonthlyRequestBase setMinDailyProfitPerMw(BigDecimal value) { this.minDailyProfitPerMw = value; return this; }
        public Integer getAncillaryFileId() { return ancillaryFileId; }
        public MonthlyRequestBase setAncillaryFileId(Integer value) { this.ancillaryFileId = value; return this; }
        public Integer getLmpFileId() { return lmpFileId; }
        public MonthlyRequestBase setLmpFileId(Integer value) { this.lmpFileId = value; return this; }
        public BigDecimal getMaxChargingPriceCap() { return maxChargingPriceCap; }
        public MonthlyRequestBase setMaxChargingPriceCap(BigDecimal value) { this.maxChargingPriceCap = value; return this; }
        public BigDecimal getMaxDischargingPriceCap() { return maxDischargingPriceCap; }
        public MonthlyRequestBase setMaxDischargingPriceCap(BigDecimal value) { this.maxDischargingPriceCap = value; return this; }
        public BigDecimal getMaxAncillaryPriceCap() { return maxAncillaryPriceCap; }
        public MonthlyRequestBase setMaxAncillaryPriceCap(BigDecimal value) { this.maxAncillaryPriceCap = value; return this; }
        public RevenueStackingMode getRevenueStackingMode() { return revenueStackingMode; }
        public MonthlyRequestBase setRevenueStackingMode(RevenueStackingMode value) { this.revenueStackingMode = value; return this; }
        public Integer getOptimizationQuality() { return optimizationQuality; }
        public MonthlyRequestBase setOptimizationQuality(Integer value) { this.optimizationQuality = value; return this; }
        public Integer getEnsureExlusive() { return ensureExlusive; }
        public MonthlyRequestBase setEnsureExlusive(Integer value) { this.ensureExlusive = value; return this; }
        public Integer getNodeRefId() { return nodeRefId; }
        public MonthlyRequestBase setNodeRefId(Integer value) { this.nodeRefId = value; return this; }
        public Boolean isUseInternalSolver() { return useInternalSolver; }
        public MonthlyRequestBase setUseInternalSolver(Boolean value) { this.useInternalSolver = value; return this; }
    }

    public static enum 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);

        private final int value;
        DataProvider(final int intValue) { value = intValue; }
        public int getValue() { return value; }
    }

    public static enum BooleanValue
    {
        Undefined,
        Yes,
        No,
        Custom;
    }

    public static enum PriceMarketType
    {
        Undefined(0),
        Realtime(1),
        DayAhead(10),
        Dart(101);

        private final int value;
        PriceMarketType(final int intValue) { value = intValue; }
        public int getValue() { return value; }
    }

    public static class BatteryProjectTodItem
    {
        public Integer month = null;
        public Integer weekDay = null;
        public Integer hour = null;
        public BigDecimal price = null;
        @Ignore()
        public String id = null;
        
        public Integer getMonth() { return month; }
        public BatteryProjectTodItem setMonth(Integer value) { this.month = value; return this; }
        public Integer getWeekDay() { return weekDay; }
        public BatteryProjectTodItem setWeekDay(Integer value) { this.weekDay = value; return this; }
        public Integer getHour() { return hour; }
        public BatteryProjectTodItem setHour(Integer value) { this.hour = value; return this; }
        public BigDecimal getPrice() { return price; }
        public BatteryProjectTodItem setPrice(BigDecimal value) { this.price = value; return this; }
        public String getId() { return id; }
        public BatteryProjectTodItem setId(String value) { this.id = value; return this; }
    }

    public static enum RevenueStackingMode
    {
        SolveWithoutAncillary,
        SolveWithAncillary;
    }

    public static class BatteryScenarioKeyGroup
    {
        public Integer keyId = null;
        public Integer year = null;
        public Integer nodeId = null;
        public DataProvider provider = null;
        public Integer zoneId = null;
        public PowerPlantType plantType = null;
        public Integer solarId = null;
        public Integer windId = null;
        public Boolean isServerless = null;
        
        public Integer getKeyId() { return keyId; }
        public BatteryScenarioKeyGroup setKeyId(Integer value) { this.keyId = value; return this; }
        public Integer getYear() { return year; }
        public BatteryScenarioKeyGroup setYear(Integer value) { this.year = value; return this; }
        public Integer getNodeId() { return nodeId; }
        public BatteryScenarioKeyGroup setNodeId(Integer value) { this.nodeId = value; return this; }
        public DataProvider getProvider() { return provider; }
        public BatteryScenarioKeyGroup setProvider(DataProvider value) { this.provider = value; return this; }
        public Integer getZoneId() { return zoneId; }
        public BatteryScenarioKeyGroup setZoneId(Integer value) { this.zoneId = value; return this; }
        public PowerPlantType getPlantType() { return plantType; }
        public BatteryScenarioKeyGroup setPlantType(PowerPlantType value) { this.plantType = value; return this; }
        public Integer getSolarId() { return solarId; }
        public BatteryScenarioKeyGroup setSolarId(Integer value) { this.solarId = value; return this; }
        public Integer getWindId() { return windId; }
        public BatteryScenarioKeyGroup setWindId(Integer value) { this.windId = value; return this; }
        public Boolean getIsServerless() { return isServerless; }
        public BatteryScenarioKeyGroup setIsServerless(Boolean value) { this.isServerless = value; return this; }
    }

    public static enum PowerPlantType
    {
        Undefined,
        Solar,
        Wind,
        Hybrid;
    }

    public static class BatteryScenarioKeyItem
    {
        public UUID projectId = null;
        public Integer keyId = null;
        public BatteryScenarioType keyType = null;
        public String recordKey = null;
        public Integer jobStatus = null;
        public Integer status = null;
        public Date minDate = null;
        public Date maxDate = null;
        public Integer year = null;
        public Integer yoyStatus = null;
        public BigDecimal usableCapacity = null;
        public BigDecimal usableCapacityFactor = null;
        public BigDecimal solarUsableCapacity = null;
        public BigDecimal solarUsableCapacityFactor = null;
        public PriceMarketType baseMarket = null;
        public BigDecimal baseCapacityRate = null;
        public BigDecimal capacityRate = null;
        public BigDecimal solarCapacityRate = null;
        public BigDecimal windCapacityRate = null;
        public BigDecimal chargeEfficinecy = null;
        public BigDecimal dischargeEfficinecy = null;
        public Integer nodeId = null;
        public DataProvider provider = null;
        public Integer zoneId = null;
        public Integer lmpFileId = null;
        public Integer productionFileId = null;
        public Integer loadFileId = null;
        public Integer capacityFileId = null;
        public PowerPlantType plantType = null;
        public Integer solarId = null;
        public Integer windId = null;
        public BigDecimal ancillaryIncrementFactor = null;
        public BigDecimal energyIncrementFactor = null;
        public BigDecimal capacityIncrementFactor = null;
        
        public UUID getProjectId() { return projectId; }
        public BatteryScenarioKeyItem setProjectId(UUID value) { this.projectId = value; return this; }
        public Integer getKeyId() { return keyId; }
        public BatteryScenarioKeyItem setKeyId(Integer value) { this.keyId = value; return this; }
        public BatteryScenarioType getKeyType() { return keyType; }
        public BatteryScenarioKeyItem setKeyType(BatteryScenarioType value) { this.keyType = value; return this; }
        public String getRecordKey() { return recordKey; }
        public BatteryScenarioKeyItem setRecordKey(String value) { this.recordKey = value; return this; }
        public Integer getJobStatus() { return jobStatus; }
        public BatteryScenarioKeyItem setJobStatus(Integer value) { this.jobStatus = value; return this; }
        public Integer getStatus() { return status; }
        public BatteryScenarioKeyItem setStatus(Integer value) { this.status = value; return this; }
        public Date getMinDate() { return minDate; }
        public BatteryScenarioKeyItem setMinDate(Date value) { this.minDate = value; return this; }
        public Date getMaxDate() { return maxDate; }
        public BatteryScenarioKeyItem setMaxDate(Date value) { this.maxDate = value; return this; }
        public Integer getYear() { return year; }
        public BatteryScenarioKeyItem setYear(Integer value) { this.year = value; return this; }
        public Integer getYoyStatus() { return yoyStatus; }
        public BatteryScenarioKeyItem setYoyStatus(Integer value) { this.yoyStatus = value; return this; }
        public BigDecimal getUsableCapacity() { return usableCapacity; }
        public BatteryScenarioKeyItem setUsableCapacity(BigDecimal value) { this.usableCapacity = value; return this; }
        public BigDecimal getUsableCapacityFactor() { return usableCapacityFactor; }
        public BatteryScenarioKeyItem setUsableCapacityFactor(BigDecimal value) { this.usableCapacityFactor = value; return this; }
        public BigDecimal getSolarUsableCapacity() { return solarUsableCapacity; }
        public BatteryScenarioKeyItem setSolarUsableCapacity(BigDecimal value) { this.solarUsableCapacity = value; return this; }
        public BigDecimal getSolarUsableCapacityFactor() { return solarUsableCapacityFactor; }
        public BatteryScenarioKeyItem setSolarUsableCapacityFactor(BigDecimal value) { this.solarUsableCapacityFactor = value; return this; }
        public PriceMarketType getBaseMarket() { return baseMarket; }
        public BatteryScenarioKeyItem setBaseMarket(PriceMarketType value) { this.baseMarket = value; return this; }
        public BigDecimal getBaseCapacityRate() { return baseCapacityRate; }
        public BatteryScenarioKeyItem setBaseCapacityRate(BigDecimal value) { this.baseCapacityRate = value; return this; }
        public BigDecimal getCapacityRate() { return capacityRate; }
        public BatteryScenarioKeyItem setCapacityRate(BigDecimal value) { this.capacityRate = value; return this; }
        public BigDecimal getSolarCapacityRate() { return solarCapacityRate; }
        public BatteryScenarioKeyItem setSolarCapacityRate(BigDecimal value) { this.solarCapacityRate = value; return this; }
        public BigDecimal getWindCapacityRate() { return windCapacityRate; }
        public BatteryScenarioKeyItem setWindCapacityRate(BigDecimal value) { this.windCapacityRate = value; return this; }
        public BigDecimal getChargeEfficinecy() { return chargeEfficinecy; }
        public BatteryScenarioKeyItem setChargeEfficinecy(BigDecimal value) { this.chargeEfficinecy = value; return this; }
        public BigDecimal getDischargeEfficinecy() { return dischargeEfficinecy; }
        public BatteryScenarioKeyItem setDischargeEfficinecy(BigDecimal value) { this.dischargeEfficinecy = value; return this; }
        public Integer getNodeId() { return nodeId; }
        public BatteryScenarioKeyItem setNodeId(Integer value) { this.nodeId = value; return this; }
        public DataProvider getProvider() { return provider; }
        public BatteryScenarioKeyItem setProvider(DataProvider value) { this.provider = value; return this; }
        public Integer getZoneId() { return zoneId; }
        public BatteryScenarioKeyItem setZoneId(Integer value) { this.zoneId = value; return this; }
        public Integer getLmpFileId() { return lmpFileId; }
        public BatteryScenarioKeyItem setLmpFileId(Integer value) { this.lmpFileId = value; return this; }
        public Integer getProductionFileId() { return productionFileId; }
        public BatteryScenarioKeyItem setProductionFileId(Integer value) { this.productionFileId = value; return this; }
        public Integer getLoadFileId() { return loadFileId; }
        public BatteryScenarioKeyItem setLoadFileId(Integer value) { this.loadFileId = value; return this; }
        public Integer getCapacityFileId() { return capacityFileId; }
        public BatteryScenarioKeyItem setCapacityFileId(Integer value) { this.capacityFileId = value; return this; }
        public PowerPlantType getPlantType() { return plantType; }
        public BatteryScenarioKeyItem setPlantType(PowerPlantType value) { this.plantType = value; return this; }
        public Integer getSolarId() { return solarId; }
        public BatteryScenarioKeyItem setSolarId(Integer value) { this.solarId = value; return this; }
        public Integer getWindId() { return windId; }
        public BatteryScenarioKeyItem setWindId(Integer value) { this.windId = value; return this; }
        public BigDecimal getAncillaryIncrementFactor() { return ancillaryIncrementFactor; }
        public BatteryScenarioKeyItem setAncillaryIncrementFactor(BigDecimal value) { this.ancillaryIncrementFactor = value; return this; }
        public BigDecimal getEnergyIncrementFactor() { return energyIncrementFactor; }
        public BatteryScenarioKeyItem setEnergyIncrementFactor(BigDecimal value) { this.energyIncrementFactor = value; return this; }
        public BigDecimal getCapacityIncrementFactor() { return capacityIncrementFactor; }
        public BatteryScenarioKeyItem setCapacityIncrementFactor(BigDecimal value) { this.capacityIncrementFactor = value; return this; }
    }

    public static enum BatteryScenarioType
    {
        Undefined,
        Optimization,
        Sum,
        OptiSum,
        FullTod,
        CapacityTod;
    }

    public static enum BatteryProjectGroup
    {
        Undefined,
        StandAlone,
        Ftm,
        Btm;
    }

    public static class YearlyApiStatusResponse
    {
        public Integer failedCount = null;
        public String message = null;
        
        public Integer getFailedCount() { return failedCount; }
        public YearlyApiStatusResponse setFailedCount(Integer value) { this.failedCount = value; return this; }
        public String getMessage() { return message; }
        public YearlyApiStatusResponse setMessage(String value) { this.message = value; return this; }
    }

}

Java CommonOptimizerYearlyRequest 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/yearly HTTP/1.1 
Host: dev-optimization.power.dev 
Accept: text/csv
Content-Type: text/csv
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/csv
Content-Length: length

{"failedCount":0,"message":"String"}