openapi: 3.2.0 info: description: MISO Public Specification to support Market System Enhancement (MSE) new Market User Interface (MUI 2.0). title: MUI - Public Specification Notifications Format API contact: name: MUI 2.0 Questions url: https://www.misoenergy.org/markets-and-operations/MSE/market-user-interface/ email: MSEQuestions@misoenergy.org license: name: For use by MISO member companies and thier vendors version: 3.3.0 servers: - url: https://cce.midwestiso.org/dart2/ - url: https://markets.midwestiso.org/dart2/ tags: - name: Notifications Format paths: /example-listener/case-event: description: Example path for receiving given notification type. Notification subscription can use separate paths by notification event type, as shown in this sample specification, or subscribe multiple notification event types to the same URL, depending on Market Participant implementation. post: tags: - Notifications Format summary: Posted case event notification message which is published to participant configured listener endpoint when Day-Ahead and Real-Time study results are available via the MUI. operationId: postCaseEventNotificationFormat requestBody: required: true content: application/json: schema: type: object properties: test: type: string enum: - 'false' - 'true' notificationData: $ref: '#/components/schemas/CaseEventNotification' responses: '200': description: OK. Notification received. /example-listener/contingency-reserve: description: Example path for receiving given notification type. Notification subscription can use separate paths by notification event type, as shown in this sample specification, or subscribe multiple notification event types to the same URL, depending on Market Participant implementation. post: tags: - Notifications Format summary: Posted contingency reserve notification message which is published to participant configured listener endpoint. operationId: postContingencyReserveNotificationFormat requestBody: required: true content: application/json: schema: type: object properties: test: type: string enum: - 'false' - 'true' notificationData: $ref: '#/components/schemas/ContingencyReserveDeploymentNotification' responses: '200': description: OK. Notification received. /example-listener/emergency-notification: description: Example path for receiving given notification type. Notification subscription can use separate paths by notification event type, as shown in this sample specification, or subscribe multiple notification event types to the same URL, depending on Market Participant implementation. post: tags: - Notifications Format summary: Posted emergency notification message which is published to participant configured listener endpoint. Message can be sourced from MISO or the IMM. operationId: postEmergencyNotificationFormat requestBody: required: true content: application/json: schema: type: object properties: test: type: string enum: - 'false' - 'true' notificationData: $ref: '#/components/schemas/EmergencyNotification' responses: '200': description: Submitted /example-listener/dispatch-instruction: description: Example path for receiving given notification type. Notification subscription can use separate paths by notification event type, as shown in this sample specification, or subscribe multiple notification event types to the same URL, depending on Market Participant implementation. post: tags: - Notifications Format summary: Posted dispatch instruction notification message which is published to participant configured listener endpoint. operationId: postDispatchInstructionNotificationFormat requestBody: required: true content: application/json: schema: type: object properties: test: type: string enum: - 'false' - 'true' notificationData: $ref: '#/components/schemas/DispatchInstructionNotification' responses: '200': description: OK. Notification received. /example-listener/financial-contract-schedule-confirmation: description: Example path for receiving given notification type. Notification subscription can use separate paths by notification event type, as shown in this sample specification, or subscribe multiple notification event types to the same URL, depending on Market Participant implementation. post: tags: - Notifications Format summary: Posted contract schedule confirmation notification message which is published to participant configured listener endpoint. operationId: postFinancialContractScheduleNotificationFormat requestBody: required: true content: application/json: schema: type: object properties: test: type: string enum: - 'false' - 'true' notificationData: $ref: '#/components/schemas/FinancialContractScheduleConfirmationNotification' responses: '200': description: OK. Notification received. /example-listener/reserve-zone-study-status: description: Example path for receiving given notification type. Notification subscription can use separate paths by notification event type, as shown in this sample specification, or subscribe multiple notification event types to the same URL, depending on Market Participant implementation. post: tags: - Notifications Format summary: Posted reserve zone study status notification message which is published to participant configured listener endpoint. operationId: postReserveZoneStudyStatusNotificationFormat requestBody: required: true content: application/json: schema: type: object properties: test: type: string enum: - 'false' - 'true' notificationData: $ref: '#/components/schemas/ReserveZoneStudyStatusNotification' responses: '200': description: OK. Notification received. /example-listener/resource-start-stop: description: Example path for receiving given notification type. Notification subscription can use separate paths by notification event type, as shown in this sample specification, or subscribe multiple notification event types to the same URL, depending on Market Participant implementation. post: tags: - Notifications Format summary: Posted resource start stop notification message which is published to participant configured listener endpoint. operationId: postResourceStartStopNotificationFormat requestBody: required: true content: application/json: schema: type: object properties: test: type: string enum: - 'false' - 'true' notificationData: $ref: '#/components/schemas/ResourceStartStopNotification' responses: '200': description: OK. Notification received. components: schemas: MarketOperatingDay: description: Effective Market operating day of data. RFC 3339. 'YYYY-MM-DD'. type: string format: date example: '2019-03-14' MarketPriceResults: description: General type for all market price results. format: money type: number multipleOf: 0.01 minimum: -9.999999999E7 maximum: 9.999999999E7 example: 34.91 ContractName: description: Bilateral contract name. type: string minLength: 1 maxLength: 50 example: Test Contract PNodeName: description: Commercial Pricing Node (PNode) name. type: string minLength: 1 maxLength: 30 example: PNODE1 ResourceStartStopNotification: type: object properties: resourceStartInstructions: type: array items: type: object properties: pnodeName: $ref: '#/components/schemas/PNodeName' interval: $ref: '#/components/schemas/MarketIntervalLabel' timestamp: $ref: '#/components/schemas/MarketIntervalLabel' deployStatus: type: string enum: - online deployReason: type: string enum: - CRD required: - pnodeName - interval - timestamp resourceStopInstructions: type: array items: type: object properties: pnodeName: $ref: '#/components/schemas/PNodeName' interval: $ref: '#/components/schemas/MarketIntervalLabel' timestamp: $ref: '#/components/schemas/MarketIntervalLabel' required: - pnodeName - interval - timestamp required: - resourceStartInstructions - resourceStopInstructions FinancialContractScheduleConfirmationNotification: type: object properties: unconfirmedContracts: type: array items: type: object properties: contractName: $ref: '#/components/schemas/ContractName' buyerName: $ref: '#/components/schemas/ParticipantName' sellerName: $ref: '#/components/schemas/ParticipantName' contractType: $ref: '#/components/schemas/ContractType' required: - contractName - buyerName - sellerName - contractType unconfirmedSchedules: type: array items: type: object properties: contractName: $ref: '#/components/schemas/ContractName' buyerName: $ref: '#/components/schemas/ParticipantName' sellerName: $ref: '#/components/schemas/ParticipantName' contractType: $ref: '#/components/schemas/ContractType' scheduleDay: $ref: '#/components/schemas/MarketOperatingDay' required: - contractName - buyerName - sellerName - contractType - scheduleDay required: - unconfirmedContracts - unconfirmedSchedules ParticipantName: description: Market participant name. type: string minLength: 1 maxLength: 40 example: MP ContingencyReserveDeploymentNotification: type: object properties: crDeployments: type: array items: type: object properties: pnodeName: $ref: '#/components/schemas/PNodeName' timestamp: $ref: '#/components/schemas/MarketIntervalLabel' mw: $ref: '#/components/schemas/RealEnergyResults' required: - pnodeName - timestamp - mw required: - crDeployments PriceTypes: description: Range of market pricing types. type: string enum: - ExAnte - ExPost example: ExPost DispatchInstructionNotification: type: object properties: dispatchInstructions: type: array items: type: object properties: pnodeName: $ref: '#/components/schemas/PNodeName' interval: $ref: '#/components/schemas/MarketIntervalLabel' energyDispatch: type: object properties: mw: $ref: '#/components/schemas/RealEnergyResults' lmp: $ref: '#/components/schemas/MarketPriceResults' udeFlag: type: boolean udeReasonCode: type: integer multipleOf: 1 minimum: 1 maximum: 999 required: - mw - lmp regulationDispatch: type: object properties: mw: $ref: '#/components/schemas/RealEnergyResults' mcp: $ref: '#/components/schemas/MarketPriceResults' mileageMCP: $ref: '#/components/schemas/MarketPriceResults' required: - mw - mcp - mileageMCP spinningReserveDispatch: type: object properties: mw: $ref: '#/components/schemas/RealEnergyResults' mcp: $ref: '#/components/schemas/MarketPriceResults' required: - mw - mcp supplementalReserveDispatch: type: object properties: mw: $ref: '#/components/schemas/RealEnergyResults' mcp: $ref: '#/components/schemas/MarketPriceResults' required: - mw - mcp shortTermReserveDispatch: type: object properties: mw: $ref: '#/components/schemas/RealEnergyResults' mcp: $ref: '#/components/schemas/MarketPriceResults' required: - mw - mcp rampCapabilityUpDispatch: type: object properties: mw: $ref: '#/components/schemas/RealEnergyResults' mcp: $ref: '#/components/schemas/MarketPriceResults' required: - mw - mcp rampCapabilityDownDispatch: type: object properties: mw: $ref: '#/components/schemas/RealEnergyResults' mcp: $ref: '#/components/schemas/MarketPriceResults' required: - mw - mcp required: - pnodeName - interval - energyDispatch - regulationDispatch - spinningReserveDispatch - supplementalReserveDispatch - rampCapabilityUpDispatch - rampCapabilityDownDispatch required: - dispatchInstructions RealEnergyResults: description: Used to represent real energy values in market outcomes. Historically simliar to 'MWType'. type: number format: realenergy multipleOf: 0.1 minimum: -9.99999999E7 maximum: 9.99999999E7 example: 120001.7 StudyStatus: description: The status of the reserve zone study for a given market day. type: string enum: - Complete - Incomplete ReserveZoneStudyStatusNotification: type: object properties: reserveZoneStudyStatus: type: array items: type: object properties: day: $ref: '#/components/schemas/MarketOperatingDay' status: $ref: '#/components/schemas/StudyStatus' required: - day - status required: - reserveZoneStudyStatus CaseEventNotification: type: object properties: caseEvents: type: array minItems: 1 items: type: object properties: day: $ref: '#/components/schemas/MarketOperatingDay' interval: $ref: '#/components/schemas/MarketIntervalLabel' eventType: type: string enum: - CaseApproved - CaseSolved eventTime: $ref: '#/components/schemas/MarketIntervalLabel' studyModeShortName: type: string enum: - DayAhead - DALMP - RTUDS - RTLMP market: $ref: '#/components/schemas/MarketType' priceType: $ref: '#/components/schemas/PriceTypes' required: - day - interval - eventType - eventTime - studyModeShortName - market - priceType required: - caseEvents EmergencyNotification: type: object properties: messages: type: array items: type: object properties: realm: type: string enum: - Public - Private source: $ref: '#/components/schemas/ParticipantName' destination: $ref: '#/components/schemas/ParticipantName' priority: type: integer minimum: 0 maximum: 999 text: type: string maxLength: 1027 effectiveTime: $ref: '#/components/schemas/MarketIntervalLabel' terminationTime: $ref: '#/components/schemas/MarketIntervalLabel' required: - realm - source - destination - priority - text - effectiveTime - terminationTime required: - messages ContractType: description: The type of contract established between two participants. type: string enum: - PureFinancial - GrandFathered - PseudoTie MarketType: description: Energy Market types. type: string enum: - day-ahead - real-time MarketIntervalLabel: description: Date-time as defined in RFC 3339. 'YYYY-MM-DDTHH:MM:SS-05:00'. Effective Market interval of data. type: string format: date-time example: '2019-03-14T14:50:00-05:00'