Power.Dev Hangfire Services

<back to all web services

LMPOperationRequest

The following routes are available for this service:
POST/lmp-operation
<?php namespace dtos;

use DateTime;
use Exception;
use DateInterval;
use JsonSerializable;
use ServiceStack\{IReturn,IReturnVoid,IGet,IPost,IPut,IDelete,IPatch,IMeta,IHasSessionId,IHasBearerToken,IHasVersion};
use ServiceStack\{ICrud,ICreateDb,IUpdateDb,IPatchDb,IDeleteDb,ISaveDb,AuditBase,QueryDb,QueryDb2,QueryData,QueryData2,QueryResponse};
use ServiceStack\{ResponseStatus,ResponseError,EmptyResponse,IdResponse,ArrayList,KeyValuePair2,StringResponse,StringsResponse,Tuple2,Tuple3,ByteArray};
use ServiceStack\{JsonConverters,Returns,TypeContext};


enum DataProvider : int
{
    case Undefined = 0;
    case SPP = 1;
    case ERCOT = 2;
    case MISO = 3;
    case CAISO = 4;
    case PJM = 5;
    case ISONE = 6;
    case NYISO = 7;
    case NW = 8;
    case SW = 9;
    case SE = 10;
    case AESO = 11;
    case IESO = 12;
    case CENACE = 20;
    case NONISO = 99;
    case EIA = 100;
    case PNM = 150;
    case NREL = 200;
    case NOAA = 210;
    case ENTSOE = 1000;
    case EPIAS = 1010;
    case SELF = 10000;
}

enum UrlActionType : int
{
    case Undefined = 0;
    case rt_lmp_five_min = 1;
    case rt_lmp_five_min_pre = 2;
    case rt_hourly_lmp = 3;
    case rt_hourly_lmp_pre = 4;
    case rt_mcp = 5;
    case rt_as_demand = 6;
    case rt_as_demand_five_min = 7;
    case da_as_demand = 8;
    case as_demand = 9;
    case rt_mcp_sup = 11;
    case da_lmp = 101;
    case da_mcp = 102;
    case ercot_ancillary_service_plan = 103;
    case ercot_as_reports = 104;
    case generation_outage = 200;
    case fuel_mix = 211;
    case fuel_mix_hour_quarter = 212;
    case fuel_mix_hourly = 213;
    case fuel_mix_detail = 215;
    case fuel_mix_forecast = 216;
    case application_queue = 220;
    case da_shadow_price = 301;
    case rt_shadow_price = 302;
    case par_flow = 501;
    case rt_mcp_zip = 1005;
    case da_mcp_zip = 1102;
    case load_or_demand = 1501;
    case load_or_demand_forecast = 1502;
    case emission = 1520;
    case fuel_forecast = 1525;
    case rt_batter_arbitrage = 2001;
    case da_batter_arbitrage = 2002;
    case interface_flow = 4001;
    case pp_production_data = 5000;
    case marginal_price = 5001;
    case pool_price = 5002;
    case aeso_ancillary = 5003;
    case aeso_standby_operating_reserve = 5004;
    case power_plant = 6000;
    case power_plant_monthly = 6001;
    case power_plant_yearly = 6002;
    case power_plant_utility = 6003;
    case pp_production_data_monthly = 6004;
    case pp_production_data_yearly = 6005;
    case ercot_application_queue = 7000;
    case ercot_load_wz_data = 7001;
    case pjm_load_hourly_data = 7002;
    case isone_load_hourly_data = 7003;
    case nyiso_load_hourly_data = 7004;
    case miso_load_data = 7005;
    case spp_load_hourly_data = 7006;
    case caiso_load_data = 7007;
    case spp_load_fivemin_data = 7008;
    case pjm_load_fivemin_data = 7009;
    case isone_load_fivemin_data = 7010;
    case nyiso_load_fivemin_data = 7011;
    case ercot_load_fz_hourly_data = 7012;
    case ercot_load_fz_fivemin_data = 7013;
    case ercot_60d_dam_gen_resource_data = 7014;
    case ercot_60d_dam_load_resource_data = 7015;
    case ercot_60d_sced_gen_resource_data = 7016;
    case ercot_60d_sced_load_resource_data = 7017;
    case ercot_dam_shadow_prices = 7018;
    case ercot_sced_shadow_prices = 7019;
    case ercot_real_time_adders_reserves = 7020;
    case ercot_as_reports_archive = 7021;
    case ercot_ancillary_service_plan_archive = 7022;
    case ercot_day_ahead_load_forecast = 7023;
    case ercot_hourly_resource_outage_capacity = 7024;
    case ercot_hourly_solar_report = 7025;
    case ercot_hourly_wind_report = 7026;
    case ercot_load_forecast_by_weather_zone = 7027;
    case ercot_load_forecast_by_zone = 7028;
    case ercot_load_forecast_all = 7029;
    case ercot_short_term_system_adequacy = 7030;
    case ercot_spp_price_corrections = 7031;
    case ercot_temperature_forecast_by_zone = 7032;
    case ercot_unplanned_resource_outage = 7033;
    case ercot_highest_price_as_offer_selected = 7034;
    case ercot_available_seasonal_capacity_forecast = 7035;
    case ercot_generation_outages = 7036;
    case caiso_ra_capacity = 7401;
    case isone_btm_solar = 7402;
    case isone_seven_day_wind_forecast = 7403;
    case isone_seven_day_solar_forecast = 7404;
    case nrel_future_data = 8000;
    case eia_generation_by_fuel = 9000;
    case eia_generation_by_subregion = 9001;
    case eia_demand_forecast = 9002;
    case nyiso_fuel_mix = 10001;
    case nyiso_btm_solar = 10002;
    case nyiso_btm_solar_forecast = 10003;
    case nyiso_btm_solar_capacity_tracking = 10004;
    case nyiso_load_forecast = 10005;
    case pjm_load_forecast = 10006;
    case pjm_projected_rto_peak_stats = 10007;
    case pjm_load_forecast_hourly_historical = 10008;
    case pjm_operational_reserves = 10009;
    case pjm_projected_area_peak_stats = 10010;
    case pjm_solar_forecast_5min = 10011;
    case pjm_solar_forecast_hourly = 10012;
    case pjm_solar_generation_5min = 10013;
    case pjm_solar_generation_by_area = 10014;
    case pjm_transfer_interface_info = 10015;
    case pjm_transmission_limits = 10016;
    case pjm_wind_forecast_hourly = 10017;
    case pjm_wind_generation_by_area = 10018;
    case pjm_wind_generation_instantaneous = 10019;
    case spp_solar_and_wind_forecast = 10500;
    case spp_solar_and_wind_forecast_short_term = 10501;
    case spp_load_forecast_mid_term = 10502;
    case spp_generation_capacity = 10503;
    case spp_operating_reserves = 10504;
    case spp_ver_curtailments_data = 10505;
    case spp_load_forecast = 10506;
    case spp_fuel_mix_detailed_data = 10507;
    case da_ercot_lambda = 13113;
    case rt_ercot_lambda = 13114;
    case rt_lmp_five_min_weekly = -1000;
    case da_lmp_bus = -101;
    case rt_lmp_five_min_bus = -1;
}

class LMPOperationRequest implements JsonSerializable
{
    public function __construct(
        /** @var DataProvider|null */
        public ?DataProvider $provider=null,
        /** @var UrlActionType|null */
        public ?UrlActionType $actionType=null,
        /** @var DateTime */
        public DateTime $date=new DateTime(),
        /** @var bool|null */
        public ?bool $isVerified=null,
        /** @var bool|null */
        public ?bool $force=null,
        /** @var bool|null */
        public ?bool $newVersion=null,
        /** @var bool|null */
        public ?bool $forceFromOldDb=null,
        /** @var bool|null */
        public ?bool $forceByDay=null,
        /** @var int */
        public int $duration=0
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['provider'])) $this->provider = JsonConverters::from('DataProvider', $o['provider']);
        if (isset($o['actionType'])) $this->actionType = JsonConverters::from('UrlActionType', $o['actionType']);
        if (isset($o['date'])) $this->date = JsonConverters::from('DateTime', $o['date']);
        if (isset($o['isVerified'])) $this->isVerified = $o['isVerified'];
        if (isset($o['force'])) $this->force = $o['force'];
        if (isset($o['newVersion'])) $this->newVersion = $o['newVersion'];
        if (isset($o['forceFromOldDb'])) $this->forceFromOldDb = $o['forceFromOldDb'];
        if (isset($o['forceByDay'])) $this->forceByDay = $o['forceByDay'];
        if (isset($o['duration'])) $this->duration = $o['duration'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->provider)) $o['provider'] = JsonConverters::to('DataProvider', $this->provider);
        if (isset($this->actionType)) $o['actionType'] = JsonConverters::to('UrlActionType', $this->actionType);
        if (isset($this->date)) $o['date'] = JsonConverters::to('DateTime', $this->date);
        if (isset($this->isVerified)) $o['isVerified'] = $this->isVerified;
        if (isset($this->force)) $o['force'] = $this->force;
        if (isset($this->newVersion)) $o['newVersion'] = $this->newVersion;
        if (isset($this->forceFromOldDb)) $o['forceFromOldDb'] = $this->forceFromOldDb;
        if (isset($this->forceByDay)) $o['forceByDay'] = $this->forceByDay;
        if (isset($this->duration)) $o['duration'] = $this->duration;
        return empty($o) ? new class(){} : $o;
    }
}

PHP LMPOperationRequest 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 /lmp-operation HTTP/1.1 
Host: catalog-jobs-dev.power.dev 
Accept: application/xml
Content-Type: application/xml
Content-Length: length

<LMPOperationRequest xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/powerDev.ISO.ServiceModels">
  <ActionType>Undefined</ActionType>
  <Date>0001-01-01T00:00:00</Date>
  <Duration>0</Duration>
  <Force>false</Force>
  <ForceByDay>false</ForceByDay>
  <ForceFromOldDb>false</ForceFromOldDb>
  <IsVerified>false</IsVerified>
  <NewVersion>false</NewVersion>
  <Provider>Undefined</Provider>
</LMPOperationRequest>