""" Options: Date: 2025-12-11 14:44:42 Version: 8.30 Tip: To override a DTO option, remove "#" prefix before updating BaseUrl: https://catalog-jobs-dev.power.dev #GlobalNamespace: #AddServiceStackTypes: True #AddResponseStatus: False #AddImplicitVersion: #AddDescriptionAsComments: True IncludeTypes: MCPOperationRequest.* #ExcludeTypes: #DefaultImports: datetime,decimal,marshmallow.fields:*,servicestack:*,typing:*,dataclasses:dataclass/field,dataclasses_json:dataclass_json/LetterCase/Undefined/config,enum:Enum/IntEnum #DataClass: #DataClassJson: """ import datetime import decimal from marshmallow.fields import * from servicestack import * from typing import * from dataclasses import dataclass, field from dataclasses_json import dataclass_json, LetterCase, Undefined, config from enum import Enum, IntEnum class DataProvider(IntEnum): 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 class UrlActionType(IntEnum): UNDEFINED = 0 RT_LMP_FIVE_MIN = 1 RT_LMP_FIVE_MIN_PRE = 2 RT_HOURLY_LMP = 3 RT_HOURLY_LMP_PRE = 4 RT_MCP = 5 RT_AS_DEMAND = 6 RT_AS_DEMAND_FIVE_MIN = 7 DA_AS_DEMAND = 8 AS_DEMAND = 9 RT_MCP_SUP = 11 DA_LMP = 101 DA_MCP = 102 ERCOT_ANCILLARY_SERVICE_PLAN = 103 ERCOT_AS_REPORTS = 104 GENERATION_OUTAGE = 200 FUEL_MIX = 211 FUEL_MIX_HOUR_QUARTER = 212 FUEL_MIX_HOURLY = 213 FUEL_MIX_DETAIL = 215 FUEL_MIX_FORECAST = 216 APPLICATION_QUEUE = 220 DA_SHADOW_PRICE = 301 RT_SHADOW_PRICE = 302 PAR_FLOW = 501 RT_MCP_ZIP = 1005 DA_MCP_ZIP = 1102 LOAD_OR_DEMAND = 1501 LOAD_OR_DEMAND_FORECAST = 1502 EMISSION = 1520 FUEL_FORECAST = 1525 RT_BATTER_ARBITRAGE = 2001 DA_BATTER_ARBITRAGE = 2002 INTERFACE_FLOW = 4001 PP_PRODUCTION_DATA = 5000 MARGINAL_PRICE = 5001 POOL_PRICE = 5002 AESO_ANCILLARY = 5003 AESO_STANDBY_OPERATING_RESERVE = 5004 POWER_PLANT = 6000 POWER_PLANT_MONTHLY = 6001 POWER_PLANT_YEARLY = 6002 POWER_PLANT_UTILITY = 6003 PP_PRODUCTION_DATA_MONTHLY = 6004 PP_PRODUCTION_DATA_YEARLY = 6005 ERCOT_APPLICATION_QUEUE = 7000 ERCOT_LOAD_WZ_DATA = 7001 PJM_LOAD_HOURLY_DATA = 7002 ISONE_LOAD_HOURLY_DATA = 7003 NYISO_LOAD_HOURLY_DATA = 7004 MISO_LOAD_DATA = 7005 SPP_LOAD_HOURLY_DATA = 7006 CAISO_LOAD_DATA = 7007 SPP_LOAD_FIVEMIN_DATA = 7008 PJM_LOAD_FIVEMIN_DATA = 7009 ISONE_LOAD_FIVEMIN_DATA = 7010 NYISO_LOAD_FIVEMIN_DATA = 7011 ERCOT_LOAD_FZ_HOURLY_DATA = 7012 ERCOT_LOAD_FZ_FIVEMIN_DATA = 7013 ERCOT_60D_DAM_GEN_RESOURCE_DATA = 7014 ERCOT_60D_DAM_LOAD_RESOURCE_DATA = 7015 ERCOT_60D_SCED_GEN_RESOURCE_DATA = 7016 ERCOT_60D_SCED_LOAD_RESOURCE_DATA = 7017 ERCOT_DAM_SHADOW_PRICES = 7018 ERCOT_SCED_SHADOW_PRICES = 7019 ERCOT_REAL_TIME_ADDERS_RESERVES = 7020 ERCOT_AS_REPORTS_ARCHIVE = 7021 ERCOT_ANCILLARY_SERVICE_PLAN_ARCHIVE = 7022 ERCOT_DAY_AHEAD_LOAD_FORECAST = 7023 ERCOT_HOURLY_RESOURCE_OUTAGE_CAPACITY = 7024 ERCOT_HOURLY_SOLAR_REPORT = 7025 ERCOT_HOURLY_WIND_REPORT = 7026 ERCOT_LOAD_FORECAST_BY_WEATHER_ZONE = 7027 ERCOT_LOAD_FORECAST_BY_ZONE = 7028 ERCOT_LOAD_FORECAST_ALL = 7029 ERCOT_SHORT_TERM_SYSTEM_ADEQUACY = 7030 ERCOT_SPP_PRICE_CORRECTIONS = 7031 ERCOT_TEMPERATURE_FORECAST_BY_ZONE = 7032 ERCOT_UNPLANNED_RESOURCE_OUTAGE = 7033 ERCOT_HIGHEST_PRICE_AS_OFFER_SELECTED = 7034 ERCOT_AVAILABLE_SEASONAL_CAPACITY_FORECAST = 7035 ERCOT_GENERATION_OUTAGES = 7036 CAISO_RA_CAPACITY = 7401 ISONE_BTM_SOLAR = 7402 ISONE_SEVEN_DAY_WIND_FORECAST = 7403 ISONE_SEVEN_DAY_SOLAR_FORECAST = 7404 NREL_FUTURE_DATA = 8000 EIA_GENERATION_BY_FUEL = 9000 EIA_GENERATION_BY_SUBREGION = 9001 EIA_DEMAND_FORECAST = 9002 NYISO_FUEL_MIX = 10001 NYISO_BTM_SOLAR = 10002 NYISO_BTM_SOLAR_FORECAST = 10003 NYISO_BTM_SOLAR_CAPACITY_TRACKING = 10004 NYISO_LOAD_FORECAST = 10005 PJM_LOAD_FORECAST = 10006 PJM_PROJECTED_RTO_PEAK_STATS = 10007 PJM_LOAD_FORECAST_HOURLY_HISTORICAL = 10008 PJM_OPERATIONAL_RESERVES = 10009 PJM_PROJECTED_AREA_PEAK_STATS = 10010 PJM_SOLAR_FORECAST_5MIN = 10011 PJM_SOLAR_FORECAST_HOURLY = 10012 PJM_SOLAR_GENERATION_5MIN = 10013 PJM_SOLAR_GENERATION_BY_AREA = 10014 PJM_TRANSFER_INTERFACE_INFO = 10015 PJM_TRANSMISSION_LIMITS = 10016 PJM_WIND_FORECAST_HOURLY = 10017 PJM_WIND_GENERATION_BY_AREA = 10018 PJM_WIND_GENERATION_INSTANTANEOUS = 10019 SPP_SOLAR_AND_WIND_FORECAST = 10500 SPP_SOLAR_AND_WIND_FORECAST_SHORT_TERM = 10501 SPP_LOAD_FORECAST_MID_TERM = 10502 SPP_GENERATION_CAPACITY = 10503 SPP_OPERATING_RESERVES = 10504 SPP_VER_CURTAILMENTS_DATA = 10505 SPP_LOAD_FORECAST = 10506 SPP_FUEL_MIX_DETAILED_DATA = 10507 DA_ERCOT_LAMBDA = 13113 RT_ERCOT_LAMBDA = 13114 RT_LMP_FIVE_MIN_WEEKLY = -1000 DA_LMP_BUS = -101 RT_LMP_FIVE_MIN_BUS = -1 # @Route("/mcp-operation", "POST") # @Route("/mcp-operation/{Provider}/{ActionType}", "GET") # @Route("/mcp-operation/{Provider}/{ActionType}/{Date}", "GET") # @Route("/mcp-operation/{Provider}/{ActionType}/{Date}/{IsVerified}", "GET") @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class MCPOperationRequest: provider: Optional[DataProvider] = None action_type: Optional[UrlActionType] = None date: datetime.datetime = datetime.datetime(1, 1, 1) is_verified: bool = False