| POST | /fuelmix-job | ||
|---|---|---|---|
| GET | /fuelmix-job/{Provider}/{ActionType} | ||
| GET | /fuelmix-job/{Provider}/{ActionType}/{Date} |
<?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 FuelMixJobRequest 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()
) {
}
/** @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']);
}
/** @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);
return empty($o) ? new class(){} : $o;
}
}
To override the Content-type in your clients, use the HTTP Accept Header, append the .other suffix or ?format=other
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /fuelmix-job HTTP/1.1
Host: catalog-jobs-dev.power.dev
Accept: text/jsonl
Content-Type: text/jsonl
Content-Length: length
{"provider":"Undefined","actionType":"Undefined","date":"\/Date(-62135596800000-0000)\/"}