---
openapi: 3.0.3
info:
  title: Demand and Capacity Notification
  version: v2
  x-samm-aspect-model-urn: urn:samm:io.catenax.demand_and_capacity_notification:3.0.0#DemandAndCapacityNotification
paths:
  /receive:
    post:
      summary: Receive notifications of your partners. Is responsible for the creation and update of demand and capacity notifications including closure.
      tags:
        - DemandAndCapacityNotification
      operationId: receiveDemandAndCapacityNotification
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/DemandAndCapacityNotification"
            examples:
              Initial Notification:
                value:
                  header:
                    messageId: "3b4edc05-e214-47a1-b0c2-1d831cdd9ba9"
                    context: "CX-DemandAndCapacityNotificationAPI-Receive:2.0.0"
                    receiverBpn: "BPNL4444444444XX"
                    senderBpn: "BPNL000000000ZH5"
                    version: "3.0.0"
                  content:
                    notificationId: "urn:uuid:3b4edc05-e214-47a1-b0c2-1d831cdd9ba9"
                    relatedNotificationIds: []
                    sourceDisruptionId: "urn:uuid:a494B2EA-b8DA-AD0d-9cBe-6cf192Df09ef"
                    text: "Lightning led to fire. Production down for 2 weeks."
                    effect: "capacity-reduction"
                    leadingRootCause: "strike"
                    status: "Capacity reduction due to ongoing strike."
                    contentChangedAt: "2023-10-05T14:30:00Z"
                    startDateOfEffect: "2023-10-04T14:30:00Z"
                    expectedEndDateOfEffect: "2023-10-08T14:30:00Z"
                    affectedSitesSender:
                      - "BPNS1234567890ZZ"
                    affectedSitesRecipient:
                      - "BPNS4444444444XX"
                    resolvingMeasureDescription: ""
                    materialsAffected:
                      - customerMaterialNumber: "MNR-7307-AU340474.002"
                        supplierMaterialNumber: "MNR-8101-ID146955.001"
                        materialGlobalAssetId: "urn:uuid:b0ceacd8-78b0-391a-2B2D-aCB8cfAAA4AA"
              Forwarding Notification:
                value:
                  header:
                    messageId: "3b4edc05-e214-47a1-b0c2-1d831cdd9ba9"
                    context: "CX-DemandAndCapacityNotificationAPI-Receive:2.0.0"
                    receiverBpn: "BPNL4444444444XX"
                    senderBpn: "BPNL000000000ZH5"
                    version: "3.0.0"
                  content:
                    notificationId: "urn:uuid:3b4edc05-e214-47a1-b0c2-1d831cdd9ba9"
                    relatedNotificationIds:
                      - "81d3a724-0682-4501-ab19-ee4d9041ef6d"
                    sourceDisruptionId: "urn:uuid:a494B2EA-b8DA-AD0d-9cBe-6cf192Df09ef"
                    text: "Strike hit our suppliers. Won't be able to raise outputs."
                    effect: "capacity-reduction"
                    leadingRootCause: "strike"
                    status: "open"
                    contentChangedAt: "2023-10-05T14:30:00Z"
                    startDateOfEffect: "2023-10-04T14:30:00Z"
                    expectedEndDateOfEffect: "2023-10-08T14:30:00Z"
                    affectedSitesSender:
                      - "BPNS1234567890ZZ"
                    affectedSitesRecipient:
                      - "BPNS4444444444XX"
                    resolvingMeasureDescription: ""
                    materialsAffected:
                      - customerMaterialNumber: "MNR-7307-AU340474.002"
                        supplierMaterialNumber: "MNR-8101-ID146955.001"
                        materialGlobalAssetId: "urn:uuid:b0ceacd8-78b0-391a-2B2D-aCB8cfAAA4AA"
              Closing Notification:
                value:
                  header:
                    messageId: "3b4edc05-e214-47a1-b0c2-1d831cdd9ba9"
                    context: "CX-DemandAndCapacityNotificationAPI-Receive:2.0.0"
                    receiverBpn: "BPNL4444444444XX"
                    senderBpn: "BPNL000000000ZH5"
                    version: "3.0.0"
                  content:
                    notificationId: "urn:uuid:3b4edc05-e214-47a1-b0c2-1d831cdd9ba9"
                    relatedNotificationIds:
                      - "81d3a724-0682-4501-ab19-ee4d9041ef6d"
                    sourceDisruptionId: "urn:uuid:a494B2EA-b8DA-AD0d-9cBe-6cf192Df09ef"
                    text: ""
                    effect: "capacity-reduction"
                    leadingRootCause: "strike"
                    status: "Closed"
                    contentChangedAt: "2023-10-05T14:30:00Z"
                    startDateOfEffect: "2023-10-04T14:30:00Z"
                    expectedEndDateOfEffect: "2023-10-08T14:30:00Z"
                    affectedSitesSender: []
                    affectedSitesRecipient: []
                    resolvingMeasureDescription: "Strike done. Capacities are back to normal. Backlog has been resolved."
                    materialsAffected: []
      responses:
        "200":
          $ref: "#/components/responses/DemandAndCapacityNotification"
        "400":
          $ref: "#/components/responses/ClientError"
        "401":
          $ref: "#/components/responses/Unauthorized"
        "404":
          $ref: "#/components/responses/NotFoundError"
        "405":
          $ref: "#/components/responses/MethodNotAllowed"
        "503":
          $ref: "#/components/responses/ServiceUnavailable"
components:
  schemas:
    ErrorResponse:
      type: object
      required:
        - error
      properties:
        error:
          $ref: "#/components/schemas/Error"
    Error:
      type: object
      required:
        - details
      properties:
        message:
          type: string
          minLength: 1
        path:
          type: string
          minLength: 1
        details:
          type: object
          additionalProperties:
            type: object
        code:
          type: string
          nullable: true
    UuidV4Trait:
      type: string
      x-samm-aspect-model-urn: urn:samm:io.catenax.shared.uuid:2.0.0#UuidV4Trait
      description:
        "The provided regular expression ensures that the UUID is composed\
        \ of five groups of characters separated by hyphens, in the form 8-4-4-4-12\
        \ for a total of 36 characters (32 hexadecimal characters and 4 hyphens),\
        \ optionally prefixed by \"urn:uuid:\" to make it an IRI."
      pattern: "(^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$)|(^urn:uuid:[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$)"
    ContextCharacteristic:
      type: string
      x-samm-aspect-model-urn: urn:samm:io.catenax.shared.message_header:3.0.0#ContextCharacteristic
      description: Defining a string value for the context
      example: CX-DemandAndCapacityNotificationApi-Receive:2.0.0
    Timestamp:
      type: string
      pattern:
        "-?([1-9][0-9]{3,}|0[0-9]{3})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T(([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\\\
        .[0-9]+)?|(24:00:00(\\.0+)?))(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?"
      x-samm-aspect-model-urn: urn:samm:org.eclipse.esmf.samm:characteristic:2.1.0#Timestamp
      description:
        Describes a Property which contains the date and time with an optional
        timezone.
      example: "2007-08-31T16:47+00:00"
    BpnlTrait:
      type: string
      x-samm-aspect-model-urn: urn:samm:io.catenax.shared.business_partner_number:2.0.0#BpnlTrait
      description:
        "The provided regular expression ensures that the BPNL is composed\
        \ of prefix 'BPNL', 10 digits and two alphanumeric letters."
      pattern: "^BPNL[a-zA-Z0-9]{12}$"
      example: "BPNL000000000ZH5"
    SemanticVersioningTrait:
      type: string
      x-samm-aspect-model-urn: urn:samm:io.catenax.shared.message_header:3.0.0#SemanticVersioningTrait
      description: Constraint for defining a SemVer version.
      pattern: "^(0|[1-9][0-9]*).(0|[1-9][0-9]*).(0|[1-9][0-9]*)(-(0|[1-9A-Za-z-][0-9A-Za-z-]*)(.[0-9A-Za-z-]+)*)?([0-9A-Za-z-]+(.[0-9A-Za-z-]+)*)?$"
      example: 2.0.0
    HeaderCharacteristic:
      description: Characteristic describing the common shared aspect Message Header
      x-samm-aspect-model-urn: urn:samm:io.catenax.shared.message_header:3.0.0#HeaderCharacteristic
      type: object
      properties:
        messageId:
          description:
            "Unique ID identifying the message. The purpose of the ID is\
            \ to uniquely identify a single message, therefore it MUST not be reused."
          x-samm-aspect-model-urn: urn:samm:io.catenax.shared.message_header:3.0.0#messageId
          $ref: "#/components/schemas/UuidV4Trait"
        context:
          description: |-
            Information about the context the message should be considered in.
            The value MUST consist of two parts: an identifier of the context (e.g. business domain, etc.) followed by a version number.
            Both the identifier and the version number MUST correspond to the content of the message.
            If the content of a message is described by an aspect model available in the Catena-X Semantic Hub, then the unique identifier of this semantic model (e.g. urn:samm:io.catenax.<ASPECT-MODEL-NAME>:1.x.x) MUST be used as a value of the context field. This is considered the default case.
            In all other cases the value of the context field MUST follow the pattern <domain>-<subdomain>-<object>:<[major] version> (e.g. TRACE-QM-Alert:1.x.x).
            Versioning only refers to major versions in both default and fallback cases.
            Note: The version of the message's header is specified in the version field.
          x-samm-aspect-model-urn: urn:samm:io.catenax.shared.message_header:3.0.0#context
          $ref: "#/components/schemas/ContextCharacteristic"
        sentDateTime:
          description:
            Time zone aware timestamp holding the date and the time the
            message was sent by the sending party. The value MUST be formatted according
            to the ISO 8601 standard
          x-samm-aspect-model-urn: urn:samm:io.catenax.shared.message_header:3.0.0#sentDateTime
          $ref: "#/components/schemas/Timestamp"
        senderBpn:
          description:
            The Business Partner Number of the sending party. The value
            MUST be a valid BPN. BPNA and BPNS are not allowed. Applicable constraints
            are defined in the corresponding standard
          x-samm-aspect-model-urn: urn:samm:io.catenax.shared.message_header:3.0.0#senderBpn
          $ref: "#/components/schemas/BpnlTrait"
        receiverBpn:
          description:
            The Business Partner Number of the receiving party. The value
            MUST be a valid BPN. BPNA and BPNS are not allowed. Applicable constraints
            are defined in the corresponding standard.
          x-samm-aspect-model-urn: urn:samm:io.catenax.shared.message_header:3.0.0#receiverBpn
          $ref: "#/components/schemas/BpnlTrait"
        expectedResponseBy:
          description:
            Time zone aware timestamp holding the date and time by which
            the sending party expects a certain type of response from the receiving
            party. The meaning and interpretation of the fields's value are context-bound
            and MUST therefore be defined by any business domain or platform capability
            making use of it. The value MUST be formatted according to the ISO 8601
            standard
          x-samm-aspect-model-urn: urn:samm:io.catenax.shared.message_header:3.0.0#expectedResponseBy
          $ref: "#/components/schemas/Timestamp"
        relatedMessageId:
          description:
            Unique ID identifying a message somehow related to the current
            one
          x-samm-aspect-model-urn: urn:samm:io.catenax.shared.message_header:3.0.0#relatedMessageId
          $ref: "#/components/schemas/UuidV4Trait"
        version:
          description:
            The unique identifier of the aspect model defining the structure
            and the semantics of the message's header. The version number should reflect
            the versioning schema of aspect models in Catena-X.
          x-samm-aspect-model-urn: urn:samm:io.catenax.shared.message_header:3.0.0#version
          $ref: "#/components/schemas/SemanticVersioningTrait"
      required:
        - messageId
        - context
        - sentDateTime
        - senderBpn
        - receiverBpn
        - version
    PartIdCharacteristic:
      type: string
      x-samm-aspect-model-urn: urn:samm:io.catenax.part_type_information:1.0.0#PartIdCharacteristic
      description:
        "The part ID is a multi-character string, usually assigned by an\
        \ ERP system."
    Material:
      description: |-
        Specifies the material. A Material must be identified by at least one of the material numbers:
        - Material Number Customer should be send if the customer is the sender
        - Material Number Supplier should be set if the sender is the supplier
        - Material Global Asset ID should be set if a digital twin exists
      x-samm-aspect-model-urn: urn:samm:io.catenax.demand_and_capacity_notification:3.0.0#Material
      type: object
      properties:
        materialGlobalAssetId:
          description: Identifier used uniquely to identify part type twin.
          x-samm-aspect-model-urn: urn:samm:io.catenax.demand_and_capacity_notification:3.0.0#materialGlobalAssetId
          $ref: "#/components/schemas/UuidV4Trait"
        materialNumberCustomer:
          description:
            "Material identifier as assigned by the customer. This property\
            \ identifies the material in the customer's database. For standard materials\
            \ (e.g. screws) for which a customer does not have an own ID, the manufacturer\
            \ material ID should be set in this field, too. If the customer is the\
            \ data provider, sending this property is RECOMMENDED."
          x-samm-aspect-model-urn: urn:samm:io.catenax.demand_and_capacity_notification:3.0.0#materialNumberCustomer
          $ref: "#/components/schemas/PartIdCharacteristic"
          example: 123-0.740-3434-A
        materialNumberSupplier:
          description:
            "Material identifiers as assigned by the supplier or manufacturer.\
            \ This property identifies the material in the supplier's database. If\
            \ the supplier is the data provider, sending this property is RECOMMENDED."
          x-samm-aspect-model-urn: urn:samm:io.catenax.demand_and_capacity_notification:3.0.0#materialNumberSupplier
          $ref: "#/components/schemas/PartIdCharacteristic"
      required:
        - materialNumberCustomer
    MaterialsSet:
      description: Set providing identification information for materials
      x-samm-aspect-model-urn: urn:samm:io.catenax.demand_and_capacity_notification:3.0.0#MaterialsSet
      type: array
      items:
        $ref: "#/components/schemas/Material"
      uniqueItems: true
    NotificationIdSet:
      description: A set of unique Notification IDs.
      x-samm-aspect-model-urn: urn:samm:io.catenax.demand_and_capacity_notification:3.0.0#NotificationIdSet
      type: array
      items:
        type: string
        x-samm-aspect-model-urn: urn:samm:io.catenax.shared.uuid:2.0.0#UuidV4Trait
        description:
          "The provided regular expression ensures that the UUID is composed\
          \ of five groups of characters separated by hyphens, in the form 8-4-4-4-12\
          \ for a total of 36 characters (32 hexadecimal characters and 4 hyphens),\
          \ optionally prefixed by \"urn:uuid:\" to make it an IRI."
        pattern: "(^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$)|(^urn:uuid:[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$)"
      uniqueItems: true
    UserInputTrait:
      type: string
      x-samm-aspect-model-urn: urn:samm:io.catenax.demand_and_capacity_notification:3.0.0#UserInputTrait
      description: Constraint for a string to be max. 4000 characters long.
      maxLength: 4000
      example: Text
    StatusEnumeration:
      type: string
      x-samm-aspect-model-urn: urn:samm:io.catenax.demand_and_capacity_notification:3.0.0#StatusEnumeration
      description: Status can be either "open" or "resolved".
      enum:
        - resolved
        - open
    EffectEnumeration:
      type: string
      x-samm-aspect-model-urn: urn:samm:io.catenax.demand_and_capacity_notification:3.0.0#EffectEnumeration
      description: Enumeration of the available effects due to the mentioned leadingRootCause.
      enum:
        - demand-reduction
        - demand-increase
        - capacity-reduction
        - capacity-increase
    LeadingRootCauseEnumeration:
      type: string
      x-samm-aspect-model-urn: urn:samm:io.catenax.demand_and_capacity_notification:3.0.0#LeadingRootCauseEnumeration
      description: Enumeration of the available leading root causes.
      enum:
        - strike
        - natural-disaster
        - production-incident
        - pandemic-or-epidemic
        - logistics-disruption
        - war
        - insolvency
        - other
    AffectedSitesCharacteristic:
      description: A set of Business Partner Number Sites (BPNS) that are affected.
      x-samm-aspect-model-urn: urn:samm:io.catenax.demand_and_capacity_notification:3.0.0#AffectedSitesCharacteristic
      type: array
      items:
        type: string
        x-samm-aspect-model-urn: urn:samm:io.catenax.shared.business_partner_number:2.0.0#BpnsTrait
        description:
          "The provided regular expression ensures that the BPNS is composed\
          \ of prefix 'BPNS', 10 digits and two alphanumeric letters."
        pattern: "^BPNS[a-zA-Z0-9]{12}$"
      uniqueItems: true
    DemandAndCapacityNotificationCharacteristic:
      x-samm-aspect-model-urn: urn:samm:io.catenax.demand_and_capacity_notification:3.0.0#DemandAndCapacityNotificationCharacteristic
      type: object
      properties:
        materialsAffected:
          description: Materials affected by the disruption.
          x-samm-aspect-model-urn: urn:samm:io.catenax.demand_and_capacity_notification:3.0.0#materialsAffected
          $ref: "#/components/schemas/MaterialsSet"
        relatedNotificationIds:
          description: |-
            Unique IDs identifying a previously received notification triggering the exchange of the current notification.

            A notification MUST be considered a Related Notification ID, if the following fields are equally filled:
            - Source Disruption ID
            - Leading Root Cause
            - Effect
          x-samm-aspect-model-urn: urn:samm:io.catenax.demand_and_capacity_notification:3.0.0#relatedNotificationIds
          $ref: "#/components/schemas/NotificationIdSet"
        notificationId:
          description: Unique ID identifying the notification.
          x-samm-aspect-model-urn: urn:samm:io.catenax.demand_and_capacity_notification:3.0.0#notificationId
          $ref: "#/components/schemas/UuidV4Trait"
        sourceDisruptionId:
          description:
            "Unique ID identifying a source of the disruption to which\
            \ the notification may relate. The sender of the first disruption notification\
            \ generates the Source Disruption ID. Multiple notifications\
            \ may relate to the same disruption ID."
          x-samm-aspect-model-urn: urn:samm:io.catenax.demand_and_capacity_notification:3.0.0#sourceDisruptionId
          $ref: "#/components/schemas/UuidV4Trait"
        resolvingMeasureDescription:
          description:
            Measure taken to resolve the disruption. MUST be set when resolving
            the notification (set status = "resolved").
          x-samm-aspect-model-urn: urn:samm:io.catenax.demand_and_capacity_notification:3.0.0#resolvingMeasureDescription
          $ref: "#/components/schemas/UserInputTrait"
          example: "We buffered the disruption period with safety stock. Alternative transports have been arranged to replenish the safety stocks."
        text:
          description: 
            Free text to describe the disruption and its handling in the notification (max. 4000 characters).
            Ensure to not reveal third-party information. Provide information about the disruption, the context
            within your customer-supplier-relationship, already aligned and taken measures and updates on the
            progress and changes. MUST be set when creating, updating or forwarding notifications. CAN be set
            when resolving (set status to “resolved”) a notification.    
          x-samm-aspect-model-urn: urn:samm:io.catenax.demand_and_capacity_notification:3.0.0#text
          $ref: "#/components/schemas/UserInputTrait"
        contentChangedAt:
          description:
            The timestamp of the latest change of this notification. Date
            and time are set according to a timezone.
          x-samm-aspect-model-urn: urn:samm:io.catenax.demand_and_capacity_notification:3.0.0#contentChangedAt
          $ref: "#/components/schemas/Timestamp"
        status:
          description:
            Status "open" should be used in the context of an effect which
            remains active. Status "resolved" should be used to inform the partner
            that the effect of the initial notification stopped or has been resolved.
          x-samm-aspect-model-urn: urn:samm:io.catenax.demand_and_capacity_notification:3.0.0#status
          $ref: "#/components/schemas/StatusEnumeration"
        expectedEndDateOfEffect:
          description:
            Expected end date of the impact MAY be defined by the sender
            of the notification.
          x-samm-aspect-model-urn: urn:samm:io.catenax.demand_and_capacity_notification:3.0.0#expectedEndDateOfEffect
          $ref: "#/components/schemas/Timestamp"
        startDateOfEffect:
          description:
            This property defines the start date and time of the effect
            regardless of the time the notification was sent.
          x-samm-aspect-model-urn: urn:samm:io.catenax.demand_and_capacity_notification:3.0.0#startDateOfEffect
          $ref: "#/components/schemas/Timestamp"
        effect:
          description:
            Effect or impact on the supply of goods as a consequence mentioned
            in the leadingRootCause. From business perspective demand/capacity reduction
            are most relevant values in connection with mentioned root causes. For
            technical completeness demand/capacity increase are also added to the
            enumeration.
          x-samm-aspect-model-urn: urn:samm:io.catenax.demand_and_capacity_notification:3.0.0#effect
          $ref: "#/components/schemas/EffectEnumeration"
        leadingRootCause:
          description:
            The main cause that has or may have an impact on the supply
            of goods.
          x-samm-aspect-model-urn: urn:samm:io.catenax.demand_and_capacity_notification:3.0.0#leadingRootCause
          $ref: "#/components/schemas/LeadingRootCauseEnumeration"
        affectedSitesRecipient:
          description:
            The affected Business Partner Site Numbers of the recipient
            of the notification. It is RECOMMENDED to set this property. It MUST
            contain only BPNS that belong to the receiver.
            When resolving the notification (setting status = "resolved"),
            this field MUST be empty.
          x-samm-aspect-model-urn: urn:samm:io.catenax.demand_and_capacity_notification:3.0.0#affectedSitesRecipient
          $ref: "#/components/schemas/AffectedSitesCharacteristic"
        affectedSitesSender:
          description:
            The affected Business Partner Site Numbers of the sender of
            the notification. It is RECOMMENDED to set this property.
            When resolving the notification (setting status = "resolved"),
            this field MUST be empty.
          x-samm-aspect-model-urn: urn:samm:io.catenax.demand_and_capacity_notification:3.0.0#affectedSitesSender
          $ref: "#/components/schemas/AffectedSitesCharacteristic"
      required:
        - notificationId
        - sourceDisruptionId
        - contentChangedAt
        - status
        - startDateOfEffect
        - effect
        - leadingRootCause
    ContentCharacteristic:
      x-samm-aspect-model-urn: urn:samm:io.catenax.demand_and_capacity_notification:3.0.0#ContentCharacteristic
      type: object
      properties:
        demandAndCapacityNotification:
          description: Content representing the Demand and Capacity Notification.
          x-samm-aspect-model-urn: urn:samm:io.catenax.demand_and_capacity_notification:3.0.0#demandAndCapacityNotification
          $ref: "#/components/schemas/DemandAndCapacityNotificationCharacteristic"
      required:
        - demandAndCapacityNotification
    DemandAndCapacityNotification:
      description:
        This aspect model defines the standard for demand and capacity
        notification exchange between business partners. Demand and Capacity Notifications
        refer to specific events within the supply chain which affect production or
        demand.
      type: object
      x-samm-aspect-model-urn: urn:samm:io.catenax.demand_and_capacity_notification:3.0.0#DemandAndCapacityNotification
      properties:
        header:
          description:
            Contains standardized attributes for message processing common
            across several use cases.
          x-samm-aspect-model-urn: urn:samm:io.catenax.shared.message_header:3.0.0#header
          $ref: "#/components/schemas/HeaderCharacteristic"
        content:
          description: Content of the notification
          x-samm-aspect-model-urn: urn:samm:io.catenax.demand_and_capacity_notification:3.0.0#content
          $ref: "#/components/schemas/ContentCharacteristic"
      required:
        - header
        - content
  responses:
    Forbidden:
      description:
        The requesting user or client is not authorized to access resources
        for the given tenant.
    Unauthorized:
      description: The requesting user or client is not authenticated.
    MethodNotAllowed:
      description: The requesting user or client is not authorized to access resources.
    ServiceUnavailable:
      description: The requesting user or client is not authorized to access resources.
    NotFoundError:
      description: The requested resource has not been found.
    ClientError:
      description: Response body malformed or validation failed
    DemandAndCapacityNotification:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/DemandAndCapacityNotification"
      description: The request was successful.
  requestBodies:
    DemandAndCapacityNotification:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/DemandAndCapacityNotification"
