MISO Offer API

The Offer API from MISO — 7 operation(s) for offer.

OpenAPI Specification

miso-offer-api-openapi.yml Raw ↑
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 Offer 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: Offer
paths:
  /markets/real-time/{day}/offer/ramp-curves/participants/{participantName}:
    description: Submit and return the ramp rate curves portion of the Real-Time schedules offer. Data can be submitted at any time per the market rules. The Ramp Rate Curves are used in market clearing only if they are effective for the operating date and hour of the market, and if the 'Enable Ramp Rate Curves' flag is set to true for that hour in the Schedule Offer ramp rate values.  To be effective for a given market date and hour, submittal must have completed by market closing. Submission for one or more pnode locations is supported.
    parameters:
    - $ref: '#/components/parameters/x-acting-participant'
    get:
      tags:
      - Offer
      description: Returns the collection of Real-Time ramp rate curves by pnode location for the day. Pnode or portfolio query parameter may be provided, otherwise all valid resources supporting ramp rate curves for participant are returned. Message format differs by offerType property which can be one of the following values; -  rampCurve -  esrRampCurve
      operationId: getOfferRampRateCurves
      parameters:
      - $ref: '#/components/parameters/MarketOperatingDay'
      - $ref: '#/components/parameters/Participant'
      - $ref: '#/components/parameters/Pnode'
      - $ref: '#/components/parameters/Portfolio'
      - $ref: '#/components/parameters/Hour'
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MultiVariantRampRateCurves'
          headers:
            http-x-request-id:
              $ref: '#/components/headers/http-x-request-id'
        '400':
          $ref: '#/components/responses/BadRequestApiResponse'
        '403':
          $ref: '#/components/responses/UnauthorizedApiResponse'
        '404':
          $ref: '#/components/responses/NotFoundApiResponse'
        '500':
          $ref: '#/components/responses/InternalErrorApiResponse'
    post:
      tags:
      - Offer
      description: Post the collection hourly ramp rate curves for one or more pnode locations. Message format differs by offerType property which can be one of the following values; -  rampCurve -  esrRampCurve
      operationId: postOfferRampRateCurves
      parameters:
      - $ref: '#/components/parameters/MarketOperatingDay'
      - $ref: '#/components/parameters/Participant'
      responses:
        '200':
          $ref: '#/components/responses/OkApiResponse'
        '400':
          $ref: '#/components/responses/BadRequestApiResponse'
        '403':
          $ref: '#/components/responses/UnauthorizedApiResponse'
        '404':
          $ref: '#/components/responses/NotFoundApiResponse'
        '500':
          $ref: '#/components/responses/InternalErrorApiResponse'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MultiVariantRampRateCurves'
  /markets/common/{day}/offer/cc-status/participants/{participantName}:
    description: Manage Combined Cycle Status. Submission for one or more pnode locations is supported.
    parameters:
    - $ref: '#/components/parameters/x-acting-participant'
    get:
      tags:
      - Offer
      description: Returns the collection of Combined Cycle status by pnode location for the day. Pnode or portfolio query parameters may be provided, otherwise all Combined Cycle aggregate resources for participant are returned.
      operationId: getCombinedCycleResourceDay
      parameters:
      - $ref: '#/components/parameters/MarketOperatingDay'
      - $ref: '#/components/parameters/Participant'
      - $ref: '#/components/parameters/Pnode'
      - $ref: '#/components/parameters/Portfolio'
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CombinedCycleStatus'
          headers:
            http-x-request-id:
              $ref: '#/components/headers/http-x-request-id'
        '400':
          $ref: '#/components/responses/BadRequestApiResponse'
        '403':
          $ref: '#/components/responses/UnauthorizedApiResponse'
        '404':
          $ref: '#/components/responses/NotFoundApiResponse'
        '500':
          $ref: '#/components/responses/InternalErrorApiResponse'
    post:
      tags:
      - Offer
      description: Submit Combined Cycle status for one or more pnode locations.
      operationId: postCombinedCycleResourceDay
      parameters:
      - $ref: '#/components/parameters/MarketOperatingDay'
      - $ref: '#/components/parameters/Participant'
      responses:
        '200':
          $ref: '#/components/responses/OkApiResponse'
        '400':
          $ref: '#/components/responses/BadRequestApiResponse'
        '403':
          $ref: '#/components/responses/UnauthorizedApiResponse'
        '404':
          $ref: '#/components/responses/NotFoundApiResponse'
        '500':
          $ref: '#/components/responses/InternalErrorApiResponse'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CombinedCycleStatus'
  /markets/{market}/{day}/offer/auto-overrides/participants/{participantName}:
    description: Returns regulation offer overrides.
    parameters:
    - $ref: '#/components/parameters/x-acting-participant'
    get:
      tags:
      - Offer
      description: 'Returns the collection of regulation offer overrides by pnode location for the day. Pnode or portfolio query parameters may be provided, otherwise all applicable resources for participant which have been overriden are returned. Regulation Offers are overridden under the following circumstances.

        1. The Participant’s combined Regulation Capacity and Mileage Offers exceed the allowable Total Regulation Offer range (this can occur if a Deployment Rate change occurs).

        2. The Participant’s Resource is awarded regulation capacity in the Day Ahead Market, and Participant’s Real-Time regulation offer differs from its Day Ahead regulation offer for the operating day.

        '
      operationId: getScheduleOfferOverrides
      parameters:
      - $ref: '#/components/parameters/MarketType'
      - $ref: '#/components/parameters/MarketOperatingDay'
      - $ref: '#/components/parameters/Participant'
      - $ref: '#/components/parameters/Pnode'
      - $ref: '#/components/parameters/Portfolio'
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RegulationOfferOverrides'
          headers:
            http-x-request-id:
              $ref: '#/components/headers/http-x-request-id'
        '400':
          $ref: '#/components/responses/BadRequestApiResponse'
        '403':
          $ref: '#/components/responses/UnauthorizedApiResponse'
        '404':
          $ref: '#/components/responses/NotFoundApiResponse'
        '500':
          $ref: '#/components/responses/InternalErrorApiResponse'
  /markets/{market}/{day}/offer/qualification-status/participants/{participantName}:
    description: Returns Qualification Status flags for a resource or Portfolio of resources.
    parameters:
    - $ref: '#/components/parameters/x-acting-participant'
    get:
      tags:
      - Offer
      description: Returns the collection of qualification status flags by pnode location for the day. Pnode or portfolio query parameters may be provided, otherwise all applicable resources for participant are returned. parameter must be supplied.
      operationId: getQualificationStatus
      parameters:
      - $ref: '#/components/parameters/MarketType'
      - $ref: '#/components/parameters/MarketOperatingDay'
      - $ref: '#/components/parameters/Participant'
      - $ref: '#/components/parameters/Pnode'
      - $ref: '#/components/parameters/Portfolio'
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QualificationStatus'
          headers:
            http-x-request-id:
              $ref: '#/components/headers/http-x-request-id'
        '400':
          $ref: '#/components/responses/BadRequestApiResponse'
        '403':
          $ref: '#/components/responses/UnauthorizedApiResponse'
        '404':
          $ref: '#/components/responses/NotFoundApiResponse'
        '500':
          $ref: '#/components/responses/InternalErrorApiResponse'
  /markets/{market}/{day}/offer/schedule/participants/{participantName}:
    description: Manage Schedule Offer. Submission for one or more pnode locations is supported.
    parameters:
    - $ref: '#/components/parameters/x-acting-participant'
    get:
      tags:
      - Offer
      description: Returns the collection of daily/hourly schedule offers by pnode location for the day. Pnode or portfolio query parameters may be provided, otherwise all applicable resources for participant are returned. Message format differs by offerType property which can be one of the following values; - genOffer - dirOffer - drr1Offer - drr2Offer - earOffer - serOffer - esrOffer
      operationId: getScheduleOffer
      parameters:
      - $ref: '#/components/parameters/MarketTypeIncBoth'
      - $ref: '#/components/parameters/MarketOperatingDay'
      - $ref: '#/components/parameters/Participant'
      - $ref: '#/components/parameters/Pnode'
      - $ref: '#/components/parameters/Portfolio'
      - $ref: '#/components/parameters/LocationType'
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MultiVariantScheduleOffer'
          headers:
            http-x-request-id:
              $ref: '#/components/headers/http-x-request-id'
        '400':
          $ref: '#/components/responses/BadRequestApiResponse'
        '403':
          $ref: '#/components/responses/UnauthorizedApiResponse'
        '404':
          $ref: '#/components/responses/NotFoundApiResponse'
        '500':
          $ref: '#/components/responses/InternalErrorApiResponse'
    post:
      tags:
      - Offer
      description: Submit the daily/hourly schedule offers for one or more pnode locations for the day. Message format differs by offerType property which can be one of the following values; - genOffer - dirOffer - drr1Offer - drr2Offer - earOffer - serOffer - esrOffer
      operationId: postScheduleOffer
      parameters:
      - $ref: '#/components/parameters/MarketTypeIncBoth'
      - $ref: '#/components/parameters/MarketOperatingDay'
      - $ref: '#/components/parameters/Participant'
      responses:
        '200':
          $ref: '#/components/responses/OkApiResponse'
        '400':
          $ref: '#/components/responses/BadRequestApiResponse'
        '403':
          $ref: '#/components/responses/UnauthorizedApiResponse'
        '404':
          $ref: '#/components/responses/NotFoundApiResponse'
        '500':
          $ref: '#/components/responses/InternalErrorApiResponse'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MultiVariantScheduleOffer'
  /markets/{market}/{day}/offer/defaults/participants/{participantName}:
    description: Manage Schedule Defaults. Submission for one or more pnode locations is supported.
    parameters:
    - $ref: '#/components/parameters/x-acting-participant'
    get:
      tags:
      - Offer
      description: Returns the collection of schedule offer defaults by pnode location for the day.  Pnode or portfolio query parameters may be provided, otherwise all applicable resources for participant are returned. Message format differs by offerType property which can be one of the following values; - genDefaultOffer - dirDefaultOffer - drr1DefaultOffer - drr2DefaultOffer - earDefaultOffer - serDefaultOffer - esrDefaultOffer
      operationId: getDefaultDay
      parameters:
      - $ref: '#/components/parameters/MarketTypeIncBoth'
      - $ref: '#/components/parameters/MarketOperatingDay'
      - $ref: '#/components/parameters/Participant'
      - $ref: '#/components/parameters/Pnode'
      - $ref: '#/components/parameters/Portfolio'
      - $ref: '#/components/parameters/LocationType'
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MultiVariantScheduleDefault'
          headers:
            http-x-request-id:
              $ref: '#/components/headers/http-x-request-id'
        '400':
          $ref: '#/components/responses/BadRequestApiResponse'
        '403':
          $ref: '#/components/responses/UnauthorizedApiResponse'
        '404':
          $ref: '#/components/responses/NotFoundApiResponse'
        '500':
          $ref: '#/components/responses/InternalErrorApiResponse'
    post:
      tags:
      - Offer
      description: Submit schedule offer defaults for one or more pnode locations for the day. Message format differs by offerType property which can be one of the following values; - genDefaultOffer - dirDefaultOffer - drr1DefaultOffer - drr2DefaultOffer - earDefaultOffer - serDefaultOffer - esrDefaultOffer
      operationId: postDefaultDay
      parameters:
      - $ref: '#/components/parameters/MarketTypeIncBoth'
      - $ref: '#/components/parameters/MarketOperatingDay'
      - $ref: '#/components/parameters/Participant'
      responses:
        '200':
          $ref: '#/components/responses/OkApiResponse'
        '400':
          $ref: '#/components/responses/BadRequestApiResponse'
        '403':
          $ref: '#/components/responses/UnauthorizedApiResponse'
        '404':
          $ref: '#/components/responses/NotFoundApiResponse'
        '500':
          $ref: '#/components/responses/InternalErrorApiResponse'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MultiVariantScheduleDefault'
  /markets/real-time/{day}/offer/overrides/participants/{participantName}:
    description: Manage Real Time Offer Overrides API. Submission for one or more pnode locations is supported.
    parameters:
    - $ref: '#/components/parameters/x-acting-participant'
    get:
      tags:
      - Offer
      description: Returns the collection of Real-Time offer overrides by pnode location for the day. Pnode or portfolio query parameters may be provided, otherwise all applicable resources for participant are returned. Message format differs by offerType property which can be one of the following values; - genScheduleOfferOverrides - dirScheduleOfferOverrides - drr1ScheduleOfferOverrides - drr2ScheduleOfferOverrides - earScheduleOfferOverrides - serScheduleOfferOverrides - esrScheduleOfferOverrides
      operationId: getRealTimeOfferOverrides
      parameters:
      - $ref: '#/components/parameters/MarketOperatingDay'
      - $ref: '#/components/parameters/Participant'
      - $ref: '#/components/parameters/Pnode'
      - $ref: '#/components/parameters/Portfolio'
      - $ref: '#/components/parameters/LocationType'
      - name: interval5Since
        description: Date-time as defined in RFC 3339 having format YYYY-MM-DDTHH:MM:SS-05:00. Optional element to specify the interval since which the overrides are requested. If {day} is today and interval5Since is not provided then currectly active overrides will be returned. If {day} is not today and interval5Since is not provided then data for the day since interval 23:59:59 will be returned.
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/MarketIntervalLabel'
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RetrievedMultiVariantRTOfferOverrides'
          headers:
            http-x-request-id:
              $ref: '#/components/headers/http-x-request-id'
        '400':
          $ref: '#/components/responses/BadRequestApiResponse'
        '403':
          $ref: '#/components/responses/UnauthorizedApiResponse'
        '404':
          $ref: '#/components/responses/NotFoundApiResponse'
        '500':
          $ref: '#/components/responses/InternalErrorApiResponse'
    post:
      tags:
      - Offer
      description: Submit the Real-Time offer overrides by one or more pnode locations for the day. Message format differs by offerType property which can be one of the following values; - genScheduleOfferOverrides - dirScheduleOfferOverrides - drr1ScheduleOfferOverrides - drr2ScheduleOfferOverrides - earScheduleOfferOverrides - serScheduleOfferOverrides - esrScheduleOfferOverrides
      operationId: postRealTimeOfferOverrides
      parameters:
      - $ref: '#/components/parameters/MarketOperatingDay'
      - $ref: '#/components/parameters/Participant'
      responses:
        '200':
          $ref: '#/components/responses/OkApiResponse'
        '400':
          $ref: '#/components/responses/BadRequestApiResponse'
        '403':
          $ref: '#/components/responses/UnauthorizedApiResponse'
        '404':
          $ref: '#/components/responses/NotFoundApiResponse'
        '500':
          $ref: '#/components/responses/InternalErrorApiResponse'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MultiVariantRTOfferOverrides'
components:
  schemas:
    DRR2CommitStatus:
      type: string
      enum:
      - NotParticipating
      - Economic
      - Emergency
      - MustRun
      - Outage
    PNodeName:
      description: Commercial Pricing Node (PNode) name.
      type: string
      minLength: 1
      maxLength: 30
      example: PNODE1
    EAREnergyDispatchStatusNullable:
      type:
      - string
      - 'null'
      enum:
      - Economic
      - SelfSchedule
      - null
    OfflineSTRDispatchStatus:
      type: string
      enum:
      - Economic
      - NotParticipating
    LocationType:
      description: Unit type of a Commercial Pricing Node (PNode).
      type: string
      enum:
      - GEN
      - DIR
      - DRR1
      - DRR2
      - EAR
      - SER
      - ESR
    DRR2ScheduleDefaultItem:
      type: object
      properties:
        offerType:
          type: string
          enum:
          - drr2DefaultOffer
          example: drr2DefaultOffer
        market:
          $ref: '#/components/schemas/MarketType'
        defaultRampRates:
          type: object
          properties:
            rampRate:
              $ref: '#/components/schemas/MWRampRate'
            rampRateBidirectional:
              $ref: '#/components/schemas/MWRampRate'
            rampRateUp:
              $ref: '#/components/schemas/MWRampRate'
            rampRateDown:
              $ref: '#/components/schemas/MWRampRate'
          additionalProperties: false
        defaultRunTimes:
          type: object
          properties:
            maximumDailyCRDeployment:
              $ref: '#/components/schemas/RealEnergyResultsNullable'
            maximumDailyRegUpDeployment:
              $ref: '#/components/schemas/RealEnergyResultsNullable'
            maximumDailyRegDownDeployment:
              $ref: '#/components/schemas/RealEnergyResultsNullable'
          additionalProperties: false
        defaultStartupCosts:
          type: object
          properties:
            noLoadCost:
              $ref: '#/components/schemas/OpCostNullable'
            coldStartupCost:
              $ref: '#/components/schemas/OpCostNullable'
            intermediateStartupCost:
              $ref: '#/components/schemas/OpCostNullable'
            hotStartupCost:
              $ref: '#/components/schemas/OpCostNullable'
          additionalProperties: false
        defaultStatus:
          type: object
          properties:
            commitStatus:
              $ref: '#/components/schemas/DRR2CommitStatus'
            energyDispatchStatus:
              $ref: '#/components/schemas/DRR2EnergyDispatchStatus'
            regulationDispatchStatus:
              $ref: '#/components/schemas/DRR2RegDispatchStatus'
            spinningDispatchStatus:
              $ref: '#/components/schemas/DRR2SpinDispatchStatus'
            onlineSuppDispatchStatus:
              $ref: '#/components/schemas/DRR2OnSuppDispatchStatus'
            offlineSuppDispatchStatus:
              $ref: '#/components/schemas/DRR2OffSuppDispatchStatus'
            onlineShortTermReserveDispatchStatus:
              $ref: '#/components/schemas/OnlineSTRDispatchStatus'
            offlineShortTermReserveDispatchStatus:
              $ref: '#/components/schemas/OfflineSTRDispatchStatus'
            rampCapabilityDispatchStatus:
              $ref: '#/components/schemas/DRR2RampDispatchStatus'
          additionalProperties: false
        defaultLimits:
          type: object
          properties:
            economicLimits:
              type: object
              properties:
                minMW:
                  $ref: '#/components/schemas/RealEnergy'
                maxMW:
                  $ref: '#/components/schemas/RealEnergy'
            emergencyLimits:
              type: object
              properties:
                minMW:
                  $ref: '#/components/schemas/RealEnergy'
                maxMW:
                  $ref: '#/components/schemas/RealEnergy'
            regulationLimits:
              type: object
              properties:
                minMW:
                  $ref: '#/components/schemas/RealEnergy'
                maxMW:
                  $ref: '#/components/schemas/RealEnergy'
            offlineResourceLimit:
              $ref: '#/components/schemas/RealEnergy'
            offlineShortTermReserveLimit:
              $ref: '#/components/schemas/RealEnergy'
          additionalProperties: false
      required:
      - offerType
      - market
      additionalProperties: false
    RetrievedMultiVariantRTOfferOverrides:
      description: Real Time Offer Overrides response. Offer format will vary based on offerType variant.
      type: object
      properties:
        day:
          $ref: '#/components/schemas/MarketOperatingDay'
        resources:
          type: array
          items:
            type: object
            properties:
              pnodeName:
                $ref: '#/components/schemas/PNodeName'
              offers:
                type: array
                items:
                  oneOf:
                  - $ref: '#/components/schemas/RetrievedGenRTOfferOverridesItem'
                  - $ref: '#/components/schemas/RetrievedDRR2RTOfferOverridesItem'
                  - $ref: '#/components/schemas/RetrievedDRR1RTOfferOverridesItem'
                  - $ref: '#/components/schemas/RetrievedEARRTOfferOverridesItem'
                  - $ref: '#/components/schemas/RetrievedSERRTOfferOverridesItem'
                  - $ref: '#/components/schemas/RetrievedDIRRTOfferOverridesItem'
                  - $ref: '#/components/schemas/RetrievedESRRTOfferOverridesItem'
            required:
            - pnodeName
            - offers
      required:
      - day
      - resources
    ESRSpinDispatchStatus:
      type: string
      enum:
      - Economic
      - SelfSchedule
      - NotQualified
    GenOnSuppDispatchStatus:
      type: string
      enum:
      - Economic
      - SelfSchedule
      - NotQualified
    RetrievedDIRRTOfferOverridesItem:
      type: object
      properties:
        offerType:
          type: string
          enum:
          - dirScheduleOfferOverrides
          example: dirScheduleOfferOverrides
        effectiveOfferOverrides:
          type: array
          minItems: 0
          items:
            type: object
            properties:
              effectiveTime:
                $ref: '#/components/schemas/MarketIntervalLabel'
              runtimeOverrides:
                type: object
                properties:
                  start:
                    $ref: '#/components/schemas/MarketIntervalLabel'
                  end:
                    $ref: '#/components/schemas/MarketIntervalLabel'
                  notificationTime:
                    $ref: '#/components/schemas/NotificationTime'
                  runtimeOverrideReason:
                    $ref: '#/components/schemas/RTOverrideReason'
                  runtimeOverrideText:
                    $ref: '#/components/schemas/RTOverrideText'
                required:
                - start
                - end
                - notificationTime
                - runtimeOverrideReason
                - runtimeOverrideText
              unitLimitOverrides:
                type: object
                properties:
                  start:
                    $ref: '#/components/schemas/MarketIntervalLabel'
                  end:
                    $ref: '#/components/schemas/MarketIntervalLabel'
                  economicLimits:
                    type: object
                    properties:
                      minMW:
                        $ref: '#/components/schemas/RealEnergy'
                    required:
                    - minMW
                  emergencyLimits:
                    type: object
                    properties:
                      minMW:
                        $ref: '#/components/schemas/RealEnergy'
                    required:
                    - minMW
                  unitLimitOverrideReason:
                    $ref: '#/components/schemas/RTOverrideReason'
                  unitLimitOverrideText:
                    $ref: '#/components/schemas/RTOverrideText'
                required:
                - start
                - end
                - economicLimits
                - emergencyLimits
                - unitLimitOverrideReason
                - unitLimitOverrideText
              rampRateOverrides:
                type: object
                properties:
                  start:
                    $ref: '#/components/schemas/MarketIntervalLabel'
                  end:
                    $ref: '#/components/schemas/MarketIntervalLabel'
                  rampRateUp:
                    $ref: '#/components/schemas/MWRampRate'
                  rampRateDown:
                    $ref: '#/components/schemas/MWRampRate'
                  rampRateBidirectional:
                    $ref: '#/components/schemas/MWRampRate'
                  rampRateOverrideReason:
                    $ref: '#/components/schemas/RTOverrideReason'
                  rampRateOverrideText:
                    $ref: '#/components/schemas/RTOverrideText'
                required:
                - start
                - end
                - rampRateUp
                - rampRateDown
                - rampRateBidirectional
                - rampRateOverrideReason
                - rampRateOverrideText
              selfScheduleOverrides:
                type: object
                properties:
                  start:
                    $ref: '#/components/schemas/MarketIntervalLabel'
                  end:
                    $ref: '#/components/schemas/MarketIntervalLabel'
                  energySelfScheduleMW:
                    $ref: '#/components/schemas/RealEnergy'
                  selfScheduleOverrideReason:
                    $ref: '#/components/schemas/RTOverrideReason'
                  selfScheduleOverrideText:
                    $ref: '#/components/schemas/RTOverrideText'
                required:
                - start
                - end
                - energySelfScheduleMW
                - selfScheduleOverrideReason
                - selfScheduleOverrideText
              dispatchStatusOverrides:
                type: object
                properties:
                  start:
                    $ref: '#/components/schemas/MarketIntervalLabel'
                  end:
                    $ref: '#/components/schemas/MarketIntervalLabel'
                  energyDispatchStatus:
                    $ref: '#/components/schemas/GenEnergyDispatchStatus'
                  rampCapabilityDispatchStatus:
                    $ref: '#/components/schemas/GenRampDispatchStatus'
                  dispatchStatusOverrideReason:
                    $ref: '#/components/schemas/RTOverrideReason'
                  dispatchStatusOverrideText:
                    $ref: '#/components/schemas/RTOverrideText'
                required:
                - start
                - end
                - energyDispatchStatus
                - rampCapabilityDispatchStatus
                - dispatchStatusOverrideReason
                - dispatchStatusOverrideText
              commitStatusOverrides:
                type: object
                properties:
                  start:
                    $ref: '#/components/schemas/MarketIntervalLabel'
                  end:
                    $ref: '#/components/schemas/MarketIntervalLabel'
                  commitStatus:
                    $ref: '#/components/schemas/GenCommitStatus'
                  commitStatusOverrideReason:
                    $ref: '#/components/schemas/RTOverrideReason'
                  commitStatusOverrideText:
                    $ref: '#/components/schemas/RTOverrideText'
                required:
                - start
                - end
                - commitStatus
                - commitStatusOverrideReason
                - commitStatusOverrideText
              offControlOverrides:
                type: object
                properties:
                  start:
                    $ref: '#/components/schemas/MarketIntervalLabel'
                  end:
                    $ref: '#/components/schemas/MarketIntervalLabel'
                  offControlFlag:
                    type:
                    - boolean
                    - 'null'
                    example: true
                  eeeFlag:
                    description: Specifies the Energy Deployment Charge Exemption (EEE) override.  May be set true only when OffControlFlag = true. When reason is RGDOverride then may not be present in output.
                    type:
                    - boolean
                    - 'null'
                    example: true
                  offControlOverrideReason:
                    $ref: '#/components/schemas/RTOverrideReason'
                  offControlOverrideText:
                    $ref: '#/components/schemas/RTOverrideText'
                required:
                - start
                - end
                - offControlFlag
                - offControlOverrideReason
                - offControlOverrideText
      required:
      - offerType
      - effectiveOfferOverrides
    MarketTypeIncBoth:
      description: Energy Market types, includes support for both markets.
      type: string
      enum:
      - day-ahead
      - real-time
      - both
    SERScheduleDefaultItem:
      type: object
      properties:
        offerType:
          type: string
          enum:
          - serDefaultOffer
          example: serDefaultOffer
        market:
          $ref: '#/components/schemas/MarketType'
        defaultRampRates:
          type: object
          properties:
            rampRate:
              $ref: '#/components/schemas/MWRampRate'
            rampRateBidirectional:
              $ref: '#/components/schemas/MWRampRate'
          additionalProperties: false
        defaultStatus:
          type: object
          properties:
            commitStatus:
              $ref: '#/components/schemas/SERCommitStatus'
            regulationDispatchStatus:
              $ref: '#/components/schemas/SERRegDispatchStatus'
          additionalPropert

# --- truncated at 32 KB (278 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/miso/refs/heads/main/openapi/miso-offer-api-openapi.yml