components:
  schemas:
    Address:
      additionalProperties: false
      properties:
        bpna:
          maxItems: 50
          pattern: ^BPNA[0-9a-zA-Z]{12}$
          type: string
        country:
          maxItems: 50
          pattern: ^[^\n\x0B\f\r\x85\u2028\u2029]+$
          type: string
        streetAndNumber:
          maxItems: 50
          pattern: ^[^\n\x0B\f\r\x85\u2028\u2029]+$
          type: string
        zipCodeAndCity:
          maxItems: 50
          pattern: ^[^\n\x0B\f\r\x85\u2028\u2029]+$
          type: string
      type: object
    AddressDto:
      additionalProperties: false
      properties:
        bpna:
          maxItems: 50
          pattern: ^BPNA[0-9a-zA-Z]{12}$
          type: string
        country:
          maxItems: 50
          pattern: ^[^\n\x0B\f\r\x85\u2028\u2029]+$
          type: string
        streetAndNumber:
          maxItems: 50
          pattern: ^[^\n\x0B\f\r\x85\u2028\u2029]+$
          type: string
        zipCodeAndCity:
          maxItems: 50
          pattern: ^[^\n\x0B\f\r\x85\u2028\u2029]+$
          type: string
      type: object
    AllocatedDaysOfSupply:
      additionalProperties: false
      properties:
        amountOfAllocatedDaysOfSupply:
          items:
            $ref: '#/components/schemas/QuantityOfDaysOfSupply'
          maxItems: 50
          type: array
        lastUpdatedOnDateTime:
          format: date-time
          maxItems: 50
          type: string
        stockLocationBPNA:
          maxItems: 50
          pattern: ^BPNA[0-9a-zA-Z]{12}$
          type: string
        stockLocationBPNS:
          maxItems: 50
          pattern: ^BPNS[0-9a-zA-Z]{12}$
          type: string
      required:
      - amountOfAllocatedDaysOfSupply
      - lastUpdatedOnDateTime
      - stockLocationBPNA
      - stockLocationBPNS
      type: object
    AllocatedPlannedProductionOutput:
      additionalProperties: false
      properties:
        estimatedTimeOfCompletion:
          format: date-time
          maxItems: 50
          type: string
        lastUpdatedOnDateTime:
          format: date-time
          maxItems: 50
          type: string
        plannedProductionQuantity:
          $ref: '#/components/schemas/ItemQuantityEntity'
        productionSiteBpns:
          maxItems: 50
          pattern: ^BPNS[0-9a-zA-Z]{12}$
          type: string
      required:
      - estimatedTimeOfCompletion
      - lastUpdatedOnDateTime
      - plannedProductionQuantity
      - productionSiteBpns
      type: object
    Classification:
      additionalProperties: false
      properties:
        classificationDescription:
          maxItems: 50
          pattern: ^[^\n\x0B\f\r\x85\u2028\u2029]+$
          type: string
        classificationID:
          maxItems: 50
          pattern: ^[^\n\x0B\f\r\x85\u2028\u2029]+$
          type: string
        classificationStandard:
          maxItems: 50
          pattern: ^[^\n\x0B\f\r\x85\u2028\u2029]+$
          type: string
      required:
      - classificationID
      - classificationStandard
      type: object
    DataImportError:
      additionalProperties: false
      properties:
        errors:
          items:
            maxItems: 50
            type: string
          maxItems: 50
          type: array
        row:
          format: int32
          type: integer
      type: object
    DataImportResult:
      additionalProperties: false
      properties:
        errors:
          items:
            $ref: '#/components/schemas/DataImportError'
          maxItems: 50
          type: array
        message:
          maxItems: 50
          type: string
      type: object
    DaysOfSupply:
      additionalProperties: false
      properties:
        allocatedDaysOfSupply:
          items:
            $ref: '#/components/schemas/AllocatedDaysOfSupply'
          maxItems: 50
          type: array
          uniqueItems: true
        direction:
          enum:
          - INBOUND
          - OUTBOUND
          maxItems: 50
          type: string
        materialGlobalAssetId:
          maxItems: 50
          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}$)
          type: string
      required:
      - allocatedDaysOfSupply
      - direction
      - materialGlobalAssetId
      type: object
    DeliveryDto:
      additionalProperties: false
      properties:
        arrivalType:
          enum:
          - estimated-departure
          - actual-departure
          - estimated-arrival
          - actual-arrival
          maxItems: 50
          type: string
        customerOrderNumber:
          maxItems: 50
          pattern: ^[^\n\x0B\f\r\x85\u2028\u2029]+$
          type: string
        customerOrderPositionNumber:
          maxItems: 50
          pattern: ^[^\n\x0B\f\r\x85\u2028\u2029]+$
          type: string
        dateOfArrival:
          format: date-time
          maxItems: 50
          type: string
        dateOfDeparture:
          format: date-time
          maxItems: 50
          type: string
        departureType:
          enum:
          - estimated-departure
          - actual-departure
          - estimated-arrival
          - actual-arrival
          maxItems: 50
          type: string
        destinationBpna:
          maxItems: 50
          pattern: ^BPNA[0-9a-zA-Z]{12}$
          type: string
        destinationBpns:
          maxItems: 50
          pattern: ^BPNS[0-9a-zA-Z]{12}$
          type: string
        incoterm:
          enum:
          - EXW
          - FCA
          - FAS
          - FOB
          - CFR
          - CIF
          - DAP
          - DPU
          - CPT
          - CIP
          - DDP
          maxItems: 50
          type: string
        lastUpdatedOnDateTime:
          format: date-time
          maxItems: 50
          type: string
        measurementUnit:
          enum:
          - unit:piece
          - unit:set
          - unit:pair
          - unit:page
          - unit:cycle
          - unit:kilowattHour
          - unit:gram
          - unit:kilogram
          - unit:tonneMetricTon
          - unit:tonUsOrShortTonUkorus
          - unit:ounceAvoirdupois
          - unit:pound
          - unit:metre
          - unit:centimetre
          - unit:kilometre
          - unit:inch
          - unit:foot
          - unit:yard
          - unit:squareCentimetre
          - unit:squareMetre
          - unit:squareInch
          - unit:squareFoot
          - unit:squareYard
          - unit:cubicCentimetre
          - unit:cubicMetre
          - unit:cubicInch
          - unit:cubicFoot
          - unit:cubicYard
          - unit:litre
          - unit:millilitre
          - unit:hectolitre
          - unit:secondUnitOfTime
          - unit:minuteUnitOfTime
          - unit:hourUnitOfTime
          - unit:day
          maxItems: 50
          type: string
        originBpna:
          maxItems: 50
          pattern: ^BPNA[0-9a-zA-Z]{12}$
          type: string
        originBpns:
          maxItems: 50
          pattern: ^BPNS[0-9a-zA-Z]{12}$
          type: string
        ownMaterialNumber:
          maxItems: 50
          pattern: ^[^\n\x0B\f\r\x85\u2028\u2029]+$
          type: string
        partnerBpnl:
          maxItems: 50
          pattern: ^BPNL[0-9a-zA-Z]{12}$
          type: string
        quantity:
          format: double
          type: number
        reported:
          type: boolean
        supplierOrderNumber:
          maxItems: 50
          pattern: ^[^\n\x0B\f\r\x85\u2028\u2029]+$
          type: string
        trackingNumber:
          maxItems: 50
          pattern: ^[^\n\x0B\f\r\x85\u2028\u2029]+$
          type: string
        uuid:
          format: uuid
          maxItems: 50
          type: string
      type: object
    DeliveryInformation:
      additionalProperties: false
      properties:
        materialGlobalAssetId:
          maxItems: 50
          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}$)
          type: string
        positions:
          items:
            $ref: '#/components/schemas/Position'
          maxItems: 50
          type: array
          uniqueItems: true
      required:
      - materialGlobalAssetId
      - positions
      type: object
    Demand:
      additionalProperties: false
      properties:
        day:
          format: date-time
          maxItems: 50
          type: string
        demand:
          $ref: '#/components/schemas/ItemQuantityEntity'
      required:
      - day
      - demand
      type: object
    DemandAndCapacityNotificationDto:
      additionalProperties: false
      properties:
        affectedMaterialNumbers:
          items:
            maxItems: 50
            pattern: ^[^\n\x0B\f\r\x85\u2028\u2029]+$
            type: string
          maxItems: 50
          type: array
        affectedSitesBpnsRecipient:
          items:
            maxItems: 50
            pattern: ^BPNS[0-9a-zA-Z]{12}$
            type: string
          maxItems: 50
          type: array
        affectedSitesBpnsSender:
          items:
            maxItems: 50
            pattern: ^BPNS[0-9a-zA-Z]{12}$
            type: string
          maxItems: 50
          type: array
        contentChangedAt:
          format: date-time
          maxItems: 50
          type: string
        effect:
          enum:
          - demand-reduction
          - demand-increase
          - capacity-reduction
          - capacity-increase
          maxItems: 50
          type: string
        expectedEndDateOfEffect:
          format: date-time
          maxItems: 50
          type: string
        leadingRootCause:
          enum:
          - strike
          - natural-disaster
          - production-incident
          - pandemic-or-epidemic
          - logistics-disruption
          - war
          - other
          maxItems: 50
          type: string
        notificationId:
          format: uuid
          maxItems: 50
          type: string
        partnerBpnl:
          maxItems: 50
          pattern: ^BPNL[0-9a-zA-Z]{12}$
          type: string
        relatedNotificationIds:
          items:
            format: uuid
            maxItems: 50
            type: string
          maxItems: 50
          type: array
        reported:
          type: boolean
        resolvingMeasureDescription:
          maxItems: 50
          pattern: ^[^\n\x0B\f\r\x85\u2028\u2029]+$
          type: string
        sourceDisruptionId:
          format: uuid
          maxItems: 50
          type: string
        startDateOfEffect:
          format: date-time
          maxItems: 50
          type: string
        status:
          enum:
          - resolved
          - open
          maxItems: 50
          type: string
        text:
          maxItems: 50
          pattern: ^[^\n\x0B\f\r\x85\u2028\u2029]+$
          type: string
        uuid:
          format: uuid
          maxItems: 50
          type: string
      type: object
    DemandDto:
      additionalProperties: false
      properties:
        day:
          format: date-time
          maxItems: 50
          type: string
        demandCategoryCode:
          enum:
          - '0001'
          - A1S1
          - SR99
          - PI01
          - PO01
          - OS01
          - OI01
          - ED01
          maxItems: 50
          type: string
        demandLocationBpns:
          maxItems: 50
          pattern: ^BPNS[0-9a-zA-Z]{12}$
          type: string
        lastUpdatedOnDateTime:
          format: date-time
          maxItems: 50
          type: string
        measurementUnit:
          enum:
          - unit:piece
          - unit:set
          - unit:pair
          - unit:page
          - unit:cycle
          - unit:kilowattHour
          - unit:gram
          - unit:kilogram
          - unit:tonneMetricTon
          - unit:tonUsOrShortTonUkorus
          - unit:ounceAvoirdupois
          - unit:pound
          - unit:metre
          - unit:centimetre
          - unit:kilometre
          - unit:inch
          - unit:foot
          - unit:yard
          - unit:squareCentimetre
          - unit:squareMetre
          - unit:squareInch
          - unit:squareFoot
          - unit:squareYard
          - unit:cubicCentimetre
          - unit:cubicMetre
          - unit:cubicInch
          - unit:cubicFoot
          - unit:cubicYard
          - unit:litre
          - unit:millilitre
          - unit:hectolitre
          - unit:secondUnitOfTime
          - unit:minuteUnitOfTime
          - unit:hourUnitOfTime
          - unit:day
          maxItems: 50
          type: string
        ownMaterialNumber:
          maxItems: 50
          pattern: ^[^\n\x0B\f\r\x85\u2028\u2029]+$
          type: string
        partnerBpnl:
          maxItems: 50
          pattern: ^BPNL[0-9a-zA-Z]{12}$
          type: string
        quantity:
          format: double
          type: number
        supplierLocationBpns:
          maxItems: 50
          pattern: ^BPNS[0-9a-zA-Z]{12}$
          type: string
        uuid:
          format: uuid
          maxItems: 50
          type: string
      type: object
    DemandSeries:
      additionalProperties: false
      properties:
        customerLocationBpns:
          maxItems: 50
          pattern: ^BPNS[a-zA-Z0-9]{12}$
          type: string
        demandCategory:
          enum:
          - DemandCategoryType(demandCategoryCode=0001, demandCategoryName=Default)
          - DemandCategoryType(demandCategoryCode=A1S1, demandCategoryName=After-Sales)
          - DemandCategoryType(demandCategoryCode=SR99, demandCategoryName=Series)
          - DemandCategoryType(demandCategoryCode=PI01, demandCategoryName=Phase-In
            Period)
          - DemandCategoryType(demandCategoryCode=OS01, demandCategoryName=Single
            Order)
          - DemandCategoryType(demandCategoryCode=OI01, demandCategoryName=Small Series)
          - DemandCategoryType(demandCategoryCode=ED01, demandCategoryName=Extraordinary
            Demand)
          - DemandCategoryType(demandCategoryCode=PO01, demandCategoryName=Phase-Out
            Period)
          maxItems: 50
          type: string
        demands:
          items:
            $ref: '#/components/schemas/Demand'
          maxItems: 50
          type: array
          uniqueItems: true
        expectedSupplierLocationBpns:
          maxItems: 50
          pattern: ^BPNS[0-9a-zA-Z]{12}$
          type: string
        lastUpdatedOnDateTime:
          format: date-time
          maxItems: 50
          type: string
      required:
      - customerLocationBpns
      - demandCategory
      - demands
      - lastUpdatedOnDateTime
      type: object
    FrontendMaterialDto:
      additionalProperties: false
      properties:
        daysOfSupply:
          format: double
          type: number
        description:
          maxItems: 50
          pattern: ^[^\n\x0B\f\r\x85\u2028\u2029]+$
          type: string
        lastUpdatedOn:
          format: date-time
          maxItems: 50
          type: string
        ownMaterialNumber:
          maxItems: 50
          pattern: ^[^\n\x0B\f\r\x85\u2028\u2029]+$
          type: string
      type: object
    ItemQuantityEntity:
      additionalProperties: false
      properties:
        unit:
          enum:
          - unit:piece
          - unit:set
          - unit:pair
          - unit:page
          - unit:cycle
          - unit:kilowattHour
          - unit:gram
          - unit:kilogram
          - unit:tonneMetricTon
          - unit:tonUsOrShortTonUkorus
          - unit:ounceAvoirdupois
          - unit:pound
          - unit:metre
          - unit:centimetre
          - unit:kilometre
          - unit:inch
          - unit:foot
          - unit:yard
          - unit:squareCentimetre
          - unit:squareMetre
          - unit:squareInch
          - unit:squareFoot
          - unit:squareYard
          - unit:cubicCentimetre
          - unit:cubicMetre
          - unit:cubicInch
          - unit:cubicFoot
          - unit:cubicYard
          - unit:litre
          - unit:millilitre
          - unit:hectolitre
          - unit:secondUnitOfTime
          - unit:minuteUnitOfTime
          - unit:hourUnitOfTime
          - unit:day
          maxItems: 50
          type: string
        value:
          format: double
          type: number
      required:
      - unit
      - value
      type: object
    ItemStockSamm:
      additionalProperties: false
      properties:
        direction:
          enum:
          - INBOUND
          - OUTBOUND
          maxItems: 50
          type: string
        materialGlobalAssetId:
          maxItems: 50
          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}$)
          type: string
        positions:
          items:
            $ref: '#/components/schemas/Position'
          maxItems: 50
          type: array
          uniqueItems: true
      required:
      - direction
      - positions
      type: object
    JsonNode:
      type: object
    Material:
      additionalProperties: false
      properties:
        lastUpdatedOn:
          format: date-time
          maxItems: 50
          type: string
        materialFlag:
          type: boolean
        materialNumberCx:
          maxItems: 50
          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}$)
          type: string
        name:
          maxItems: 50
          pattern: ^[^\n\x0B\f\r\x85\u2028\u2029]+$
          type: string
        ownMaterialNumber:
          maxItems: 50
          pattern: ^[^\n\x0B\f\r\x85\u2028\u2029]+$
          type: string
        productFlag:
          type: boolean
      type: object
    MaterialDto:
      additionalProperties: false
      properties:
        materialFlag:
          type: boolean
        materialNumberCustomer:
          maxItems: 50
          pattern: ^[^\n\x0B\f\r\x85\u2028\u2029]+$
          type: string
        materialNumberCx:
          maxItems: 50
          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}$)
          type: string
        materialNumberSupplier:
          maxItems: 50
          pattern: ^[^\n\x0B\f\r\x85\u2028\u2029]+$
          type: string
        name:
          maxItems: 50
          pattern: ^[^\n\x0B\f\r\x85\u2028\u2029]+$
          type: string
        productFlag:
          type: boolean
        uuid:
          format: uuid
          maxItems: 50
          type: string
      type: object
    MaterialEntityDto:
      additionalProperties: false
      properties:
        materialFlag:
          type: boolean
        materialNumberCx:
          maxItems: 50
          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}$)
          type: string
        name:
          maxItems: 50
          pattern: ^[^\n\x0B\f\r\x85\u2028\u2029]+$
          type: string
        ownMaterialNumber:
          maxItems: 50
          pattern: ^[^\n\x0B\f\r\x85\u2028\u2029]+$
          type: string
        productFlag:
          type: boolean
      type: object
    MaterialPartnerRelationDto:
      additionalProperties: false
      properties:
        ownMaterialNumber:
          maxItems: 50
          pattern: ^[^\n\x0B\f\r\x85\u2028\u2029]+$
          type: string
        partnerBpnl:
          maxItems: 50
          pattern: ^BPNL[0-9a-zA-Z]{12}$
          type: string
        partnerBuysMaterial:
          type: boolean
        partnerMaterialNumber:
          maxItems: 50
          pattern: ^[^\n\x0B\f\r\x85\u2028\u2029]+$
          type: string
        partnerSuppliesMaterial:
          type: boolean
      type: object
    MaterialStockDto:
      additionalProperties: false
      properties:
        blocked:
          type: boolean
        customerOrderNumber:
          maxItems: 50
          pattern: ^[^\n\x0B\f\r\x85\u2028\u2029]+$
          type: string
        customerOrderPositionNumber:
          maxItems: 50
          pattern: ^[^\n\x0B\f\r\x85\u2028\u2029]+$
          type: string
        isBlocked:
          type: boolean
        lastUpdatedOn:
          format: date-time
          maxItems: 50
          type: string
        material:
          $ref: '#/components/schemas/MaterialDto'
        measurementUnit:
          enum:
          - unit:piece
          - unit:set
          - unit:pair
          - unit:page
          - unit:cycle
          - unit:kilowattHour
          - unit:gram
          - unit:kilogram
          - unit:tonneMetricTon
          - unit:tonUsOrShortTonUkorus
          - unit:ounceAvoirdupois
          - unit:pound
          - unit:metre
          - unit:centimetre
          - unit:kilometre
          - unit:inch
          - unit:foot
          - unit:yard
          - unit:squareCentimetre
          - unit:squareMetre
          - unit:squareInch
          - unit:squareFoot
          - unit:squareYard
          - unit:cubicCentimetre
          - unit:cubicMetre
          - unit:cubicInch
          - unit:cubicFoot
          - unit:cubicYard
          - unit:litre
          - unit:millilitre
          - unit:hectolitre
          - unit:secondUnitOfTime
          - unit:minuteUnitOfTime
          - unit:hourUnitOfTime
          - unit:day
          maxItems: 50
          type: string
        partner:
          $ref: '#/components/schemas/PartnerDto'
        quantity:
          format: double
          type: number
        stockLocationBpna:
          maxItems: 50
          pattern: ^BPNA[0-9a-zA-Z]{12}$
          type: string
        stockLocationBpns:
          maxItems: 50
          pattern: ^BPNS[0-9a-zA-Z]{12}$
          type: string
        supplierOrderNumber:
          maxItems: 50
          pattern: ^[^\n\x0B\f\r\x85\u2028\u2029]+$
          type: string
        uuid:
          format: uuid
          maxItems: 50
          type: string
      type: object
    OrderPositionReference:
      additionalProperties: false
      properties:
        customerOrderId:
          maxItems: 50
          pattern: ^[^\n\x0B\f\r\x85\u2028\u2029]+$
          type: string
        customerOrderPositionId:
          maxItems: 50
          pattern: ^[^\n\x0B\f\r\x85\u2028\u2029]+$
          type: string
        supplierOrderId:
          maxItems: 50
          pattern: ^[^\n\x0B\f\r\x85\u2028\u2029]+$
          type: string
      required:
      - customerOrderId
      - customerOrderPositionId
      type: object
    PageMetadata:
      additionalProperties: false
      properties:
        number:
          format: int64
          type: integer
        size:
          format: int64
          type: integer
        totalElements:
          format: int64
          type: integer
        totalPages:
          format: int64
          type: integer
      type: object
    Pageable:
      additionalProperties: false
      properties:
        page:
          format: int32
          minimum: 0
          type: integer
        size:
          format: int32
          minimum: 1
          type: integer
        sort:
          items:
            maxItems: 50
            type: string
          maxItems: 50
          type: array
      type: object
    PagedModelPartnerDataUpdateBatchRunDto:
      additionalProperties: false
      properties:
        content:
          items:
            $ref: '#/components/schemas/PartnerDataUpdateBatchRunDto'
          maxItems: 50
          type: array
        page:
          $ref: '#/components/schemas/PageMetadata'
      type: object
    PagedModelPartnerDataUpdateBatchRunEntryDto:
      additionalProperties: false
      properties:
        content:
          items:
            $ref: '#/components/schemas/PartnerDataUpdateBatchRunEntryDto'
          maxItems: 50
          type: array
        page:
          $ref: '#/components/schemas/PageMetadata'
      type: object
    PartSitesInformationAsPlanned:
      additionalProperties: false
      properties:
        catenaXsiteId:
          maxItems: 50
          pattern: ^BPNS[0-9a-zA-Z]{12}$
          type: string
        function:
          enum:
          - production
          - warehouse
          - spare part warehouse
          maxItems: 50
          type: string
        functionValidFrom:
          maxItems: 50
          pattern: ^(?:[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}(?:[.][0-9]+)?Z|[0-9]{4}-[0-9]{2}-[0-9]{2}(?:T[0-9]{2}:[0-9]{2}:[0-9]{2}(?:[.][0-9]+)?(?:Z|[+-][0-9]{2}:[0-9]{2}))?)$
          type: string
        functionValidUntil:
          maxItems: 50
          pattern: ^(?:[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}(?:[.][0-9]+)?Z|[0-9]{4}-[0-9]{2}-[0-9]{2}(?:T[0-9]{2}:[0-9]{2}:[0-9]{2}(?:[.][0-9]+)?(?:Z|[+-][0-9]{2}:[0-9]{2}))?)$
          type: string
      required:
      - catenaXsiteId
      - function
      type: object
    PartTypeInformationBody:
      additionalProperties: false
      properties:
        manufacturerPartId:
          maxItems: 50
          type: string
        nameAtManufacturer:
          maxItems: 50
          type: string
        partClassification:
          items:
            $ref: '#/components/schemas/Classification'
          maxItems: 50
          type: array
      required:
      - manufacturerPartId
      - nameAtManufacturer
      type: object
    PartTypeInformationSAMM:
      additionalProperties: false
      properties:
        catenaXId:
          maxItems: 50
          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}$)
          type: string
        partSitesInformationAsPlanned:
          items:
            $ref: '#/components/schemas/PartSitesInformationAsPlanned'
          maxItems: 50
          type: array
          uniqueItems: true
        partTypeInformation:
          $ref: '#/components/schemas/PartTypeInformationBody'
      required:
      - catenaXId
      - partTypeInformation
      type: object
    Partner:
      additionalProperties: false
      properties:
        addresses:
          items:
            $ref: '#/components/schemas/Address'
          maxItems: 50
          type: array
          uniqueItems: true
        bpnl:
          maxItems: 50
          pattern: ^BPNL[0-9a-zA-Z]{12}$
          type: string
        edcUrl:
          maxItems: 50
          pattern: ^http[s]?://([a-z0-9][a-z0-9\-]+[a-z0-9])(\.[a-z0-9\-]+)*(:[0-9]{1,4})?(/[a-z0-9\-]+)*[/]?$
          type: string
        name:
          maxItems: 50
          pattern: ^[^\n\x0B\f\r\x85\u2028\u2029]+$
          type: string
        sites:
          items:
            $ref: '#/components/schemas/Site'
          maxItems: 50
          type: array
          uniqueItems: true
        uuid:
          format: uuid
          maxItems: 50
          type: string
      type: object
    PartnerDataUpdateBatchRunDto:
      additionalProperties: false
      properties:
        durationInSeconds:
          format: int64
          type: integer
        endTime:
          format: date-time
          maxItems: 50
          type: string
        id:
          format: uuid
          maxItems: 50
          type: string
        startTime:
          format: date-time
          maxItems: 50
          type: string
        status:
          enum:
          - IN_PROGRESS
          - COMPLETED
          - COMPLETED_WITH_ERRORS
          maxItems: 50
          type: string
        totalEntries:
          format: int32
          type: integer
        totalErrorCount:
          format: int32
          type: integer
      required:
      - durationInSeconds
      - id
      - startTime
      - status
      - totalEntries
      - totalErrorCount
      type: object
    PartnerDataUpdateBatchRunEntryDto:
      additionalProperties: false
      properties:
        direction:
          enum:
          - INBOUND
          - OUTBOUND
          maxItems: 50
          type: string
        errorMessage:
          maxItems: 50
          type: string
        id:
          format: uuid
          maxItems: 50
          type: string
        informationType:
          enum:
          - STOCK
          - DEMAND
          - PRODUCTION
          - DAYS_OF_SUPPLY
          - DELIVERY
          maxItems: 50
          type: string
        ownMaterialNumber:
          maxItems: 50
          type: string
        partnerBpnl:
          maxItems: 50
          type: string
        partnerId:
          format: uuid
          maxItems: 50
          type: string
        partnerName:
          maxItems: 50
          type: string
        status:
          enum:
          - SUCCESS
          - ERROR
          maxItems: 50
          type: string
      required:
      - direction
      - id
      - informationType
      - ownMaterialNumber
      - partnerBpnl
      - partnerId
      - partnerName
      - status
      type: object
    PartnerDto:
      additionalProperties: false
      properties:
        addresses:
          items:
            $ref: '#/components/schemas/AddressDto'
          maxItems: 50
          type: array
          uniqueItems: true
        bpnl:
          maxItems: 50
          pattern: ^BPNL[0-9a-zA-Z]{12}$
          type: string
        edcUrl:
          maxItems: 50
          pattern: ^http[s]?://([a-z0-9][a-z0-9\-]+[a-z0-9])(\.[a-z0-9\-]+)*(:[0-9]{1,4})?(/[a-z0-9\-]+)*[/]?$
          type: string
        name:
          maxItems: 50
          pattern: ^[^\n\x0B\f\r\x85\u2028\u2029]+$
          type: string
        sites:
          items:
            $ref: '#/components/schemas/SiteDto'
          maxItems: 50
          type: array
          uniqueItems: true
        uuid:
          format: uuid
          maxItems: 50
          type: string
      type: object
    PlannedProductionOutput:
      additionalProperties: false
      properties:
        materialGlobalAssetId:
          maxItems: 50
          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}$)
          type: string
        positions:
          items:
            $ref: '#/components/schemas/Position'
          maxItems: 50
          type: array
          uniqueItems: true
      required:
      - materialGlobalAssetId
      - positions
      type: object
    Position:
      additionalProperties: false
      properties:
        allocatedPlannedProductionOutputs:
          items:
            $ref: '#/components/schemas/AllocatedPlannedProductionOutput'
          maxItems: 50
          type: array
          uniqueItems: true
        lastUpdatedOnDateTime:
          format: date-time
          maxItems: 50
          type: string
          writeOnly: true
        orderPositionReference:
          $ref: '#/components/schemas/OrderPositionReference'
      required:
      - allocatedPlannedProductionOutputs
      type: object
    ProductStockDto:
      additionalProperties: false
      properties:
        blocked:
          type: boolean
        customerOrderNumber:
          maxItems: 50
          pattern: ^[^\n\x0B\f\r\x85\u2028\u2029]+$
          type: string
        customerOrderPositionNumber:
          maxItems: 50
          pattern: ^[^\n\x0B\f\r\x85\u2028\u2029]+$
          type: string
        isBlocked:
          type: boolean
        lastUpdatedOn:
          format: date-time
          maxItems: 50
          type: string
        material:
          $ref: '#/components/schemas/MaterialDto'
        measurementUnit:
          enum:
          - unit:piece
          - unit:set
          - unit:pair
          - unit:page
          - unit:cycle
          - unit:kilowattHour
          - unit:gram
          - unit:kilogram
          - unit:tonneMetricTon
          - unit:tonUsOrShortTonUkorus
          - unit:ounceAvoirdupois
          - unit:pound
          - unit:metre
          - unit:centimetre
          - unit:kilometre
          - unit:inch
          - unit:foot
          - unit:yard
          - unit:squareCentimetre
          - unit:squareMetre
          - unit:squareInch
          - unit:squareFoot
          - unit:squareYard
          - unit:cubicCentimetre
          - unit:cubicMetre
          - unit:cubicInch
          - unit:cubicFoot
          - unit:cubicYard
          - unit:litre
          - unit:millilitre
          - unit:hectolitre
          - unit:secondUnitOfTime
          - unit:minuteUnitOfTime
          - unit:hourUnitOfTime
          - unit:day
          maxItems: 50
          type: string
        partner:
          $ref: '#/components/schemas/PartnerDto'
        quantity:
          format: double
          type: number
        stockLocationBpna:
          maxItems: 50
          pattern: ^BPNA[0-9a-zA-Z]{12}$
          type: string
        stockLocationBpns:
          maxItems: 50
          pattern: ^BPNS[0-9a-zA-Z]{12}$
          type: string
        supplierOrderNumber:
          maxItems: 50
          pattern: ^[^\n\x0B\f\r\x85\u2028\u2029]+$
          type: string
        uuid:
          format: uuid
          maxItems: 50
          type: string
      type: object
    ProductionDto:
      additionalProperties: false
      properties:
        customerOrderNumber:
          maxItems: 50
          pattern: ^[^\n\x0B\f\r\x85\u2028\u2029]+$
          type: string
        customerOrderPositionNumber:
          maxItems: 50
          pattern: ^[^\n\x0B\f\r\x85\u2028\u2029]+$
          type: string
        estimatedTimeOfCompletion:
          format: date-time
          maxItems: 50
          type: string
        lastUpdatedOnDateTime:
          format: date-time
          maxItems: 50
          type: string
        material:
          $ref: '#/components/schemas/MaterialDto'
        measurementUnit:
          enum:
          - unit:piece
          - unit:set
          - unit:pair
          - unit:page
          - unit:cycle
          - unit:kilowattHour
          - unit:gram
          - unit:kilogram
          - unit:tonneMetricTon
          - unit:tonUsOrShortTonUkorus
          - unit:ounceAvoirdupois
          - unit:pound
          - unit:metre
          - unit:centimetre
          - unit:kilometre
          - unit:inch
          - unit:foot
          - unit:yard
          - unit:squareCentimetre
          - unit:squareMetre
          - unit:squareInch
          - unit:squareFoot
          - unit:squareYard
          - unit:cubicCentimetre
          - unit:cubicMetre
          - unit:cubicInch
          - unit:cubicFoot
          - unit:cubicYard
          - unit:litre
          - unit:millilitre
          - unit:hectolitre
          - unit:secondUnitOfTime
          - unit:minuteUnitOfTime
          - unit:hourUnitOfTime
          - unit:day
          maxItems: 50
          type: string
        partner:
          $ref: '#/components/schemas/PartnerDto'
        productionSiteBpns:
          maxItems: 50
          type: string
        quantity:
          format: double
          type: number
        supplierOrderNumber:
          maxItems: 50
          pattern: ^[^\n\x0B\f\r\x85\u2028\u2029]+$
          type: string
        uuid:
          format: uuid
          maxItems: 50
          type: string
      type: object
    QuantityOfDaysOfSupply:
      additionalProperties: false
      properties:
        date:
          format: date-time
          maxItems: 50
          type: string
        daysOfSupply:
          format: double
          type: number
      required:
      - date
      - daysOfSupply
      type: object
    ReportedMaterialStockDto:
      additionalProperties: false
      properties:
        blocked:
          type: boolean
        customerOrderNumber:
          maxItems: 50
          pattern: ^[^\n\x0B\f\r\x85\u2028\u2029]+$
          type: string
        customerOrderPositionNumber:
          maxItems: 50
          pattern: ^[^\n\x0B\f\r\x85\u2028\u2029]+$
          type: string
        isBlocked:
          type: boolean
        lastUpdatedOn:
          format: date-time
          maxItems: 50
          type: string
        material:
          $ref: '#/components/schemas/MaterialDto'
        measurementUnit:
          enum:
          - unit:piece
          - unit:set
          - unit:pair
          - unit:page
          - unit:cycle
          - unit:kilowattHour
          - unit:gram
          - unit:kilogram
          - unit:tonneMetricTon
          - unit:tonUsOrShortTonUkorus
          - unit:ounceAvoirdupois
          - unit:pound
          - unit:metre
          - unit:centimetre
          - unit:kilometre
          - unit:inch
          - unit:foot
          - unit:yard
          - unit:squareCentimetre
          - unit:squareMetre
          - unit:squareInch
          - unit:squareFoot
          - unit:squareYard
          - unit:cubicCentimetre
          - unit:cubicMetre
          - unit:cubicInch
          - unit:cubicFoot
          - unit:cubicYard
          - unit:litre
          - unit:millilitre
          - unit:hectolitre
          - unit:secondUnitOfTime
          - unit:minuteUnitOfTime
          - unit:hourUnitOfTime
          - unit:day
          maxItems: 50
          type: string
        partner:
          $ref: '#/components/schemas/PartnerDto'
        quantity:
          format: double
          type: number
        stockLocationBpna:
          maxItems: 50
          pattern: ^BPNA[0-9a-zA-Z]{12}$
          type: string
        stockLocationBpns:
          maxItems: 50
          pattern: ^BPNS[0-9a-zA-Z]{12}$
          type: string
        supplierOrderNumber:
          maxItems: 50
          pattern: ^[^\n\x0B\f\r\x85\u2028\u2029]+$
          type: string
        uuid:
          format: uuid
          maxItems: 50
          type: string
      type: object
    ReportedProductStockDto:
      additionalProperties: false
      properties:
        blocked:
          type: boolean
        customerOrderNumber:
          maxItems: 50
          pattern: ^[^\n\x0B\f\r\x85\u2028\u2029]+$
          type: string
        customerOrderPositionNumber:
          maxItems: 50
          pattern: ^[^\n\x0B\f\r\x85\u2028\u2029]+$
          type: string
        isBlocked:
          type: boolean
        lastUpdatedOn:
          format: date-time
          maxItems: 50
          type: string
        material:
          $ref: '#/components/schemas/MaterialDto'
        measurementUnit:
          enum:
          - unit:piece
          - unit:set
          - unit:pair
          - unit:page
          - unit:cycle
          - unit:kilowattHour
          - unit:gram
          - unit:kilogram
          - unit:tonneMetricTon
          - unit:tonUsOrShortTonUkorus
          - unit:ounceAvoirdupois
          - unit:pound
          - unit:metre
          - unit:centimetre
          - unit:kilometre
          - unit:inch
          - unit:foot
          - unit:yard
          - unit:squareCentimetre
          - unit:squareMetre
          - unit:squareInch
          - unit:squareFoot
          - unit:squareYard
          - unit:cubicCentimetre
          - unit:cubicMetre
          - unit:cubicInch
          - unit:cubicFoot
          - unit:cubicYard
          - unit:litre
          - unit:millilitre
          - unit:hectolitre
          - unit:secondUnitOfTime
          - unit:minuteUnitOfTime
          - unit:hourUnitOfTime
          - unit:day
          maxItems: 50
          type: string
        partner:
          $ref: '#/components/schemas/PartnerDto'
        quantity:
          format: double
          type: number
        stockLocationBpna:
          maxItems: 50
          pattern: ^BPNA[0-9a-zA-Z]{12}$
          type: string
        stockLocationBpns:
          maxItems: 50
          pattern: ^BPNS[0-9a-zA-Z]{12}$
          type: string
        supplierOrderNumber:
          maxItems: 50
          pattern: ^[^\n\x0B\f\r\x85\u2028\u2029]+$
          type: string
        uuid:
          format: uuid
          maxItems: 50
          type: string
      type: object
    ShortTermMaterialDemand:
      additionalProperties: false
      properties:
        demandSeries:
          items:
            $ref: '#/components/schemas/DemandSeries'
          maxItems: 50
          type: array
          uniqueItems: true
        materialGlobalAssetId:
          maxItems: 50
          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}$)
          type: string
      required:
      - demandSeries
      type: object
    Site:
      additionalProperties: false
      properties:
        addresses:
          items:
            $ref: '#/components/schemas/Address'
          maxItems: 50
          type: array
          uniqueItems: true
        bpns:
          maxItems: 50
          pattern: ^BPNS[0-9a-zA-Z]{12}$
          type: string
        name:
          maxItems: 50
          pattern: ^[^\n\x0B\f\r\x85\u2028\u2029]+$
          type: string
      required:
      - bpns
      type: object
    SiteDto:
      additionalProperties: false
      properties:
        addresses:
          items:
            $ref: '#/components/schemas/AddressDto'
          maxItems: 50
          type: array
          uniqueItems: true
        bpns:
          maxItems: 50
          pattern: ^BPNS[0-9a-zA-Z]{12}$
          type: string
        name:
          maxItems: 50
          pattern: ^[^\n\x0B\f\r\x85\u2028\u2029]+$
          type: string
      type: object
    SupplyDto:
      additionalProperties: false
      properties:
        date:
          format: date-time
          maxItems: 50
          type: string
        daysOfSupply:
          format: double
          type: number
      type: object
  securitySchemes:
    X-API-KEY:
      in: header
      name: X-API-KEY
      type: apiKey
info:
  title: PURIS FOSS Open API
  version: 5.2.0
openapi: 3.1.0
paths:
  /batch/partner-data-update:
    get:
      operationId: history
      parameters:
      - in: query
        name: pageable
        required: true
        schema:
          $ref: '#/components/schemas/Pageable'
          additionalProperties: false
      responses:
        '200':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/PagedModelPartnerDataUpdateBatchRunDto'
                additionalProperties: false
          description: OK
      tags:
      - partner-data-update-batch-controller
  /batch/partner-data-update/run:
    post:
      operationId: triggerRun
      responses:
        '200':
          content:
            '*/*':
              schema:
                additionalProperties: false
                maxItems: 50
                type: string
          description: OK
      tags:
      - partner-data-update-batch-controller
  /batch/partner-data-update/{id}:
    get:
      operationId: status
      parameters:
      - in: path
        name: id
        required: true
        schema:
          additionalProperties: false
          format: uuid
          maxItems: 50
          type: string
      responses:
        '200':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/PartnerDataUpdateBatchRunDto'
                additionalProperties: false
          description: OK
      tags:
      - partner-data-update-batch-controller
  /batch/partner-data-update/{id}/entries:
    get:
      operationId: entries
      parameters:
      - in: path
        name: id
        required: true
        schema:
          additionalProperties: false
          format: uuid
          maxItems: 50
          type: string
      - in: query
        name: pageable
        required: true
        schema:
          $ref: '#/components/schemas/Pageable'
          additionalProperties: false
      responses:
        '200':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/PagedModelPartnerDataUpdateBatchRunEntryDto'
                additionalProperties: false
          description: OK
      tags:
      - partner-data-update-batch-controller
  /days-of-supply/customer:
    get:
      description: Calculate days of supply for customer for given number of days.
        Filtered by given material number, partner bpnl and site bpns. materialNumber
        is expected to be base64 encoded
      operationId: calculateCustomerDaysOfSupply
      parameters:
      - in: query
        name: materialNumber
        required: true
        schema:
          additionalProperties: false
          maxItems: 50
          type: string
      - in: query
        name: bpnl
        required: false
        schema:
          additionalProperties: false
          maxItems: 50
          type: string
      - in: query
        name: siteBpns
        required: false
        schema:
          additionalProperties: false
          maxItems: 50
          type: string
      - in: query
        name: numberOfDays
        required: true
        schema:
          additionalProperties: false
          format: int32
          type: integer
      responses:
        '200':
          content:
            '*/*':
              schema:
                additionalProperties: false
                items:
                  $ref: '#/components/schemas/SupplyDto'
                maxItems: 50
                type: array
          description: OK
      summary: Calculate days of supply for customer for given number of days.
      tags:
      - supply-controller
  /days-of-supply/customer/reported:
    get:
      description: Get days of supply for customer for given material number and partner
        bpnl. materialNumber is expected to be base64 encoded
      operationId: getCustomerDaysOfSupply
      parameters:
      - in: query
        name: materialNumber
        required: true
        schema:
          additionalProperties: false
          maxItems: 50
          type: string
      - in: query
        name: bpnl
        required: true
        schema:
          additionalProperties: false
          maxItems: 50
          type: string
      - in: query
        name: siteBpns
        required: false
        schema:
          additionalProperties: false
          maxItems: 50
          type: string
      responses:
        '200':
          content:
            '*/*':
              schema:
                additionalProperties: false
                items:
                  $ref: '#/components/schemas/SupplyDto'
                maxItems: 50
                type: array
          description: OK
      summary: Get days of supply for customer.
      tags:
      - supply-controller
  /days-of-supply/customer/reported/refresh:
    get:
      description: Refreshes all reported customer Days of Supply for the specified
        Material from the days of supply request API.
      operationId: refreshReportedCustomerSupply
      parameters:
      - description: base64 encoded
        in: query
        name: ownMaterialNumber
        required: true
        schema:
          additionalProperties: false
          maxItems: 50
          type: string
      responses:
        '200':
          content:
            '*/*':
              schema:
                additionalProperties: false
                items:
                  $ref: '#/components/schemas/PartnerDto'
                maxItems: 50
                type: array
          description: OK
      summary: Refreshes all reported customer days of supply
      tags:
      - supply-controller
  /days-of-supply/request/{materialnumbercx}/{direction}/submodel/{representation}:
    get:
      operationId: getDaysOfSupplyMapping
      parameters:
      - in: header
        name: edc-bpn
        required: true
        schema:
          additionalProperties: false
          maxItems: 50
          type: string
      - in: path
        name: materialnumbercx
        required: true
        schema:
          additionalProperties: false
          maxItems: 50
          type: string
      - in: path
        name: direction
        required: true
        schema:
          additionalProperties: false
          enum:
          - INBOUND
          - OUTBOUND
          maxItems: 50
          type: string
      - in: path
        name: representation
        required: true
        schema:
          additionalProperties: false
          maxItems: 50
          type: string
      responses:
        '200':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/DaysOfSupply'
                additionalProperties: false
          description: Ok
        '400':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/DaysOfSupply'
                additionalProperties: false
          description: Bad Request
        '500':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/DaysOfSupply'
                additionalProperties: false
          description: Internal Server Error
        '501':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/DaysOfSupply'
                additionalProperties: false
          description: Unsupported representation
      summary: This endpoint receives the DaysOfSupply Submodel 2.0.0 requests
      tags:
      - days-of-supply-request-api-controller
  /days-of-supply/supplier:
    get:
      description: Calculate days of supply for supplier for given number of days.
        Filtered by given material number, partner bpnl and site bpns. materialNumber
        is expected to be base64 encoded
      operationId: calculateSupplierDaysOfSupply
      parameters:
      - in: query
        name: materialNumber
        required: true
        schema:
          additionalProperties: false
          maxItems: 50
          type: string
      - in: query
        name: bpnl
        required: false
        schema:
          additionalProperties: false
          maxItems: 50
          type: string
      - in: query
        name: siteBpns
        required: false
        schema:
          additionalProperties: false
          maxItems: 50
          type: string
      - in: query
        name: numberOfDays
        required: true
        schema:
          additionalProperties: false
          format: int32
          type: integer
      responses:
        '200':
          content:
            '*/*':
              schema:
                additionalProperties: false
                items:
                  $ref: '#/components/schemas/SupplyDto'
                maxItems: 50
                type: array
          description: OK
      summary: Calculate days of supply for supplier for given number of days.
      tags:
      - supply-controller
  /days-of-supply/supplier/reported:
    get:
      description: Get days of supply for supplier for given material number and partner
        bpnl. materialNumber is expected to be base64 encoded
      operationId: getSupplierDaysOfSupply
      parameters:
      - in: query
        name: materialNumber
        required: true
        schema:
          additionalProperties: false
          maxItems: 50
          type: string
      - in: query
        name: bpnl
        required: true
        schema:
          additionalProperties: false
          maxItems: 50
          type: string
      - in: query
        name: siteBpns
        required: false
        schema:
          additionalProperties: false
          maxItems: 50
          type: string
      responses:
        '200':
          content:
            '*/*':
              schema:
                additionalProperties: false
                items:
                  $ref: '#/components/schemas/SupplyDto'
                maxItems: 50
                type: array
          description: OK
      summary: Get days of supply for supplier.
      tags:
      - supply-controller
  /days-of-supply/supplier/reported/refresh:
    get:
      description: Refreshes all reported supplier Days of Supply for the specified
        Material from the days of supply request API.
      operationId: refreshReportedSupplierSupply
      parameters:
      - description: base64 encoded
        in: query
        name: ownMaterialNumber
        required: true
        schema:
          additionalProperties: false
          maxItems: 50
          type: string
      responses:
        '200':
          content:
            '*/*':
              schema:
                additionalProperties: false
                items:
                  $ref: '#/components/schemas/PartnerDto'
                maxItems: 50
                type: array
          description: OK
      summary: Refreshes all reported supplier days of supply
      tags:
      - supply-controller
  /delivery:
    get:
      description: Get all planned deliveries for the given material number. Optionally
        a bpns and partner bpnl can be provided to filter the deliveries further.
      operationId: getAllDeliveries
      parameters:
      - description: encoded in base64
        in: query
        name: ownMaterialNumber
        required: true
        schema:
          additionalProperties: false
          maxItems: 50
          type: string
      - in: query
        name: bpns
        required: false
        schema:
          additionalProperties: false
          maxItems: 50
          type: string
      - in: query
        name: bpnl
        required: false
        schema:
          additionalProperties: false
          maxItems: 50
          type: string
      responses:
        '200':
          content:
            '*/*':
              schema:
                additionalProperties: false
                items:
                  $ref: '#/components/schemas/DeliveryDto'
                maxItems: 50
                type: array
          description: OK
      summary: Get all planned deliveries for the given Material
      tags:
      - delivery-controller
    post:
      description: "Creates a new delivery.  \n **Note:** If the backend should automatically\
        \ set `lastUpdatedOnDateTime` please set it to null."
      operationId: createDelivery
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeliveryDto'
              additionalProperties: false
        required: true
      responses:
        '201':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/DeliveryDto'
                additionalProperties: false
          description: Delivery was created.
        '400':
          description: Malformed or invalid request body.
        '409':
          description: Delivery already exists.
        '500':
          description: Internal Server Error.
      summary: Creates a new delivery
      tags:
      - delivery-controller
    put:
      description: "Updates an existing delivery.  \n **Note:** If the backend should\
        \ automatically set `lastUpdatedOnDateTime` please set it to null."
      operationId: updateDelivery
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeliveryDto'
              additionalProperties: false
        required: true
      responses:
        '202':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/DeliveryDto'
                additionalProperties: false
          description: Delivery was updated.
        '400':
          description: Malformed or invalid request body.
        '404':
          description: Delivery does not exist.
        '500':
          description: Internal Server Error.
      summary: Updates a delivery by its UUID
      tags:
      - delivery-controller
  /delivery-information/request/{materialNumberCx}/submodel/{representation}:
    get:
      operationId: getDeliveryMapping
      parameters:
      - in: header
        name: edc-bpn
        required: true
        schema:
          additionalProperties: false
          maxItems: 50
          type: string
      - in: path
        name: materialNumberCx
        required: true
        schema:
          additionalProperties: false
          maxItems: 50
          type: string
      - in: path
        name: representation
        required: true
        schema:
          additionalProperties: false
          maxItems: 50
          type: string
      responses:
        '200':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/DeliveryInformation'
                additionalProperties: false
          description: Ok
        '400':
          description: Bad Request
        '500':
          description: Internal Server Error
        '501':
          description: Unsupported representation
      summary: 'This endpoint receives the Delivery Information Submodel 2.0.0 requests.
        This endpoint is meant to be accessed by partners via EDC only. '
      tags:
      - delivery-request-api-controller
  /delivery/reported/refresh:
    get:
      description: Refreshes all reported deliveries from the delivery request API.
      operationId: refreshReportedDeliveries
      parameters:
      - description: encoded in base64
        in: query
        name: ownMaterialNumber
        required: true
        schema:
          additionalProperties: false
          maxItems: 50
          type: string
      responses:
        '200':
          content:
            '*/*':
              schema:
                additionalProperties: false
                items:
                  $ref: '#/components/schemas/PartnerDto'
                maxItems: 50
                type: array
          description: OK
      summary: Refreshes all reported deliveries
      tags:
      - delivery-controller
  /delivery/{id}:
    delete:
      operationId: deleteDelivery
      parameters:
      - in: path
        name: id
        required: true
        schema:
          additionalProperties: false
          format: uuid
          maxItems: 50
          type: string
      responses:
        '204':
          description: Delivery was deleted.
        '400':
          description: Malformed or invalid request body.
        '404':
          description: Delivery does not exist.
        '500':
          description: Internal Server Error.
      summary: Deletes a delivery by its UUID
      tags:
      - delivery-controller
  /demand:
    get:
      description: Get all own demands for the given material number. Optionally the
        demanding site can be filtered by its bpns.
      operationId: getAllDemands
      parameters:
      - description: encoded in base64
        in: query
        name: ownMaterialNumber
        required: true
        schema:
          additionalProperties: false
          maxItems: 50
          type: string
      - in: query
        name: site
        required: false
        schema:
          additionalProperties: false
          maxItems: 50
          type: string
      responses:
        '200':
          content:
            '*/*':
              schema:
                additionalProperties: false
                items:
                  $ref: '#/components/schemas/DemandDto'
                maxItems: 50
                type: array
          description: OK
      summary: Get all own demands for the given Material
      tags:
      - demand-controller
    post:
      description: "Creates a new demand. \n **Note:** If the backend should automatically\
        \ set `lastUpdatedOnDateTime` please set it to null."
      operationId: createDemand
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DemandDto'
              additionalProperties: false
        required: true
      responses:
        '201':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/DemandDto'
                additionalProperties: false
          description: Demand was created.
        '400':
          description: Malformed or invalid request body.
        '409':
          description: Demand already exists. Use PUT instead.
        '500':
          description: Internal Server Error.
      summary: Creates a new demand
      tags:
      - demand-controller
    put:
      description: "Updates an existing demand.  \n **Note:** If the backend should\
        \ automatically set `lastUpdatedOnDateTime` please set it to null."
      operationId: updateDemand
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DemandDto'
              additionalProperties: false
        required: true
      responses:
        '200':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/DemandDto'
                additionalProperties: false
          description: Demand was updated.
        '400':
          description: Malformed or invalid request body.
        '404':
          description: Demand does not exist.
        '500':
          description: Internal Server Error.
      summary: Updates a demand by its UUID
      tags:
      - demand-controller
  /demand-and-capacity-notification:
    get:
      description: Get all own notifications. Optionally the partner can be filtered
        by its bpnl.
      operationId: getAllNotifications
      parameters:
      - in: query
        name: partnerBpnl
        required: false
        schema:
          additionalProperties: false
          maxItems: 50
          type: string
      responses:
        '200':
          content:
            '*/*':
              schema:
                additionalProperties: false
                items:
                  $ref: '#/components/schemas/DemandAndCapacityNotificationDto'
                maxItems: 50
                type: array
          description: OK
      summary: Get all own notifications
      tags:
      - demand-and-capacity-notification-controller
    post:
      operationId: createNotification
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DemandAndCapacityNotificationDto'
              additionalProperties: false
        required: true
      responses:
        '201':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/DemandAndCapacityNotificationDto'
                additionalProperties: false
          description: Notification was created.
        '400':
          description: Malformed or invalid request body.
        '409':
          description: Notification already exists. Use PUT instead.
        '500':
          description: Internal Server Error.
      summary: Creates a new notification
      tags:
      - demand-and-capacity-notification-controller
    put:
      operationId: updateNotification
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DemandAndCapacityNotificationDto'
              additionalProperties: false
        required: true
      responses:
        '200':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/DemandAndCapacityNotificationDto'
                additionalProperties: false
          description: Notification was updated.
        '400':
          description: Malformed or invalid request body.
        '404':
          description: Notification does not exist.
        '500':
          description: Internal Server Error.
      summary: Updates a notification by its UUID
      tags:
      - demand-and-capacity-notification-controller
  /demand-and-capacity-notification/reported:
    get:
      description: Get all reported notifications. Optionally the partner can be filtered
        by its bpnl.
      operationId: getAllReportedNotifications
      parameters:
      - in: query
        name: partnerBpnl
        required: false
        schema:
          additionalProperties: false
          maxItems: 50
          type: string
      responses:
        '200':
          content:
            '*/*':
              schema:
                additionalProperties: false
                items:
                  $ref: '#/components/schemas/DemandAndCapacityNotificationDto'
                maxItems: 50
                type: array
          description: OK
      summary: Get all reported notifications
      tags:
      - demand-and-capacity-notification-controller
  /demand-and-capacity-notification/request:
    post:
      operationId: postDemandAndCapacityNotification
      parameters:
      - in: header
        name: edc-bpn
        required: true
        schema:
          additionalProperties: false
          maxItems: 50
          type: string
      requestBody:
        content:
          application/json:
            example:
              content:
                demandAndCapacityNotification:
                  affectedSitesRecipient: []
                  affectedSitesSender: []
                  contentChangedAt: '2023-12-13T15:00:00+01:00'
                  effect: demand-reduction
                  expectedEndDateOfEffect: '2023-12-17T08:00:00+01:00'
                  leadingRootCause: strike
                  materialsAffected: []
                  notificationId: urn:uuid:d9452f24-3bf3-4134-b3eb-68858f1b2362
                  relatedNotificationIds:
                  - urn:uuid:d05cef4a-b692-45bf-87cc-eda2d84e4c04
                  resolvingMeasureDescription: An agreement was found and the strike
                    was ended.
                  sourceDisruptionId: urn:uuid:c69cb3e4-16ad-43c3-82b9-0deac75ecf9e
                  startDateOfEffect: '2023-12-13T15:00:00+01:00'
                  status: resolved
                  text: Capacity reduction due to ongoing strike.
              header:
                context: CX-DemandAndCapacityNotificationAPI-Receive:2.0
                messageId: 3b4edc05-e214-47a1-b0c2-1d831cdd9ba9
                receiverBpn: BPNL6666787765VQ
                senderBpn: BPNL7588787849VQ
                sentDateTime: '2023-06-19T21:24:00+07:00'
                version: 3.0.0
            schema:
              $ref: '#/components/schemas/JsonNode'
              additionalProperties: false
        required: true
      responses:
        '200':
          description: Ok
        '400':
          description: Bad Request
        '500':
          description: Internal Server Error
      summary: 'This endpoint receives the DemandAndCapacityNotification 2.0.0 requests.
        This endpoint is meant to be accessed by partners via EDC only. '
      tags:
      - demand-and-capacity-notification-request-api-controller
  /demand-and-capacity-notification/{id}:
    delete:
      operationId: deleteNotification
      parameters:
      - in: path
        name: id
        required: true
        schema:
          additionalProperties: false
          format: uuid
          maxItems: 50
          type: string
      responses:
        '204':
          description: Notification was deleted.
        '400':
          description: Malformed or invalid request body.
        '404':
          description: Notification does not exist.
        '500':
          description: Internal Server Error.
      summary: Deletes a notification by its UUID
      tags:
      - demand-and-capacity-notification-controller
  /demand/reported:
    get:
      description: Get all demands of partners for a material number. Optionally the
        partners can be filtered by their bpnl and the demanding site can be filtered
        by its bpns.
      operationId: getAllDemandsForPartner
      parameters:
      - description: encoded in base64
        in: query
        name: ownMaterialNumber
        required: true
        schema:
          additionalProperties: false
          maxItems: 50
          type: string
      - in: query
        name: bpnl
        required: false
        schema:
          additionalProperties: false
          maxItems: 50
          type: string
      - in: query
        name: site
        required: false
        schema:
          additionalProperties: false
          maxItems: 50
          type: string
      responses:
        '200':
          content:
            '*/*':
              schema:
                additionalProperties: false
                items:
                  $ref: '#/components/schemas/DemandDto'
                maxItems: 50
                type: array
          description: OK
      summary: Get all demands of partners for a material
      tags:
      - demand-controller
  /demand/reported/refresh:
    get:
      description: Refreshes all reported demands from the demand request API.
      operationId: refreshReportedProductions_1
      parameters:
      - description: encoded in base64
        in: query
        name: ownMaterialNumber
        required: true
        schema:
          additionalProperties: false
          maxItems: 50
          type: string
      responses:
        '200':
          content:
            '*/*':
              schema:
                additionalProperties: false
                items:
                  $ref: '#/components/schemas/PartnerDto'
                maxItems: 50
                type: array
          description: OK
      summary: Refreshes all reported demands
      tags:
      - demand-controller
  /demand/{id}:
    delete:
      operationId: deleteDemand
      parameters:
      - in: path
        name: id
        required: true
        schema:
          additionalProperties: false
          format: uuid
          maxItems: 50
          type: string
      responses:
        '204':
          description: Demand was deleted.
        '400':
          description: Malformed or invalid request body.
        '404':
          description: Demand does not exist.
        '500':
          description: Internal Server Error.
      summary: Deletes a demand by its UUID
      tags:
      - demand-controller
  /edc/assets:
    get:
      description: Gets a specific EDC asset by its asset id.
      operationId: getAssets
      parameters:
      - in: query
        name: assetId
        required: true
        schema:
          additionalProperties: false
          maxItems: 50
          type: string
      responses:
        '200':
          content:
            '*/*':
              schema:
                additionalProperties: false
                maxItems: 50
                type: string
          description: OK
      summary: Gets an asset by id -- ADMIN ONLY
      tags:
      - edc-controller
  /edc/catalog:
    get:
      description: Gets the catalog for a specified partner by BPNL and DSP Url.
      operationId: getCatalog
      parameters:
      - in: query
        name: dspUrl
        required: true
        schema:
          additionalProperties: false
          maxItems: 50
          type: string
      - in: query
        name: partnerBpnl
        required: true
        schema:
          additionalProperties: false
          maxItems: 50
          type: string
      responses:
        '200':
          content:
            '*/*':
              schema:
                additionalProperties: false
                maxItems: 50
                type: string
          description: OK
      summary: Gets the catalog for a specific partner -- ADMIN ONLY
      tags:
      - edc-controller
  /edc/contractnegotiations:
    get:
      description: Gets all contract negotiations as a string.
      operationId: getContractNegotiations
      responses:
        '200':
          content:
            '*/*':
              schema:
                additionalProperties: false
                maxItems: 50
                type: string
          description: OK
      summary: Gets all contract negotiations -- ADMIN ONLY
      tags:
      - edc-controller
  /edc/transfers:
    get:
      description: Gets all transfers as JSON.
      operationId: getTransfers
      responses:
        '200':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/JsonNode'
                additionalProperties: false
          description: OK
      summary: Gets all transfers -- ADMIN ONLY
      tags:
      - edc-controller
  /erp-adapter:
    put:
      description: "This endpoint accepts responses from the ERP adapter. Incoming\
        \ messages are expected to carry a SAMM of the previously requested type.\
        \ \n\nCurrently supported: \n\n| response-type | samm-version |\n|---------------|--------------|\n\
        | ItemStock     | 2.0          |"
      operationId: putMethod
      parameters:
      - in: query
        name: request-id
        required: true
        schema:
          additionalProperties: false
          format: uuid
          maxItems: 50
          type: string
      - in: query
        name: bpnl
        required: true
        schema:
          additionalProperties: false
          maxItems: 50
          type: string
      - in: query
        name: response-type
        required: true
        schema:
          additionalProperties: false
          maxItems: 50
          type: string
      - in: query
        name: samm-version
        required: true
        schema:
          additionalProperties: false
          maxItems: 50
          type: string
      - description: Represented as the number of milliseconds since January 1, 1970,
          00:00:00 GMT
        example: 1719295545654
        in: query
        name: response-timestamp
        required: true
        schema:
          additionalProperties: false
          format: int64
          type: integer
      requestBody:
        content:
          application/json:
            example:
              direction: INBOUND
              materialGlobalAssetId: null
              positions:
              - allocatedStocks:
                - isBlocked: false
                  lastUpdatedOnDateTime: '2023-04-28T14:23:00.123456+14:00'
                  quantityOnAllocatedStock:
                    unit: unit:piece
                    value: 22.0
                  stockLocationBPNA: BPNA4444444444AA
                  stockLocationBPNS: BPNS4444444444XX
                orderPositionReference:
                  customerOrderId: C-Nbr-4711
                  customerOrderPositionId: PositionId-01
                  supplierOrderId: M-Nbr-4711
              - allocatedStocks:
                - isBlocked: false
                  lastUpdatedOnDateTime: '2023-04-28T14:23:00.123456+14:00'
                  quantityOnAllocatedStock:
                    unit: unit:piece
                    value: 66.0
                  stockLocationBPNA: BPNA4444444444AA
                  stockLocationBPNS: BPNS4444444444XX
                orderPositionReference:
                  customerOrderId: C-Nbr-4711
                  customerOrderPositionId: PositionId-03
                  supplierOrderId: M-Nbr-4711
              - allocatedStocks:
                - isBlocked: true
                  lastUpdatedOnDateTime: '2023-04-28T14:23:00.123456+14:00'
                  quantityOnAllocatedStock:
                    unit: unit:piece
                    value: 44.0
                  stockLocationBPNA: BPNA4444444444AA
                  stockLocationBPNS: BPNS4444444444XX
                orderPositionReference:
                  customerOrderId: C-Nbr-4711
                  customerOrderPositionId: PositionId-02
                  supplierOrderId: M-Nbr-4711
            schema:
              $ref: '#/components/schemas/JsonNode'
              additionalProperties: false
        required: true
      responses:
        '201':
          content:
            '*/*':
              schema:
                additionalProperties: false
                type: object
          description: accepted
        '400':
          content:
            '*/*':
              schema:
                additionalProperties: false
                type: object
          description: bad request
        '404':
          content:
            '*/*':
              schema:
                additionalProperties: false
                type: object
          description: unknown request-id
        '409':
          content:
            '*/*':
              schema:
                additionalProperties: false
                type: object
          description: repeated answer for request-id
        '500':
          content:
            '*/*':
              schema:
                additionalProperties: false
                type: object
          description: internal server error
        '501':
          content:
            '*/*':
              schema:
                additionalProperties: false
                type: object
          description: unsupported response-type
      tags:
      - erp-adapter-controller
  /erp-adapter/trigger:
    post:
      description: 'This endpoint is used to trigger scheduled updates from the ErpAdapter.
        This is useful if you are expecting a specific request from a partner in the
        near future and want to make a best-effort attempt to ensure that your PURIS
        backend has already obtained current data to respond to that expected request,
        when it arrives. Please note, that calling this endpoint has no significant
        effect, if a request with the exact same specifics is already currently in
        place. In that case, a call to this endpoint will only extend the period,
        after which the scheduled request will be assumed to be irrelevant (see the
        puris.erpadapter.timelimit property and its documentation for details in this
        regard). '
      operationId: scheduleErpUpdate
      parameters:
      - in: query
        name: partner-bpnl
        required: true
        schema:
          additionalProperties: false
          maxItems: 50
          type: string
      - description: encoded in base64
        in: query
        name: own-materialnumber
        required: true
        schema:
          additionalProperties: false
          maxItems: 50
          type: string
      - in: query
        name: asset-type
        required: true
        schema:
          additionalProperties: false
          enum:
          - DTR
          - ITEM_STOCK_SUBMODEL
          - PRODUCTION_SUBMODEL
          - DEMAND_SUBMODEL
          - DELIVERY_SUBMODEL
          - NOTIFICATION
          - DAYS_OF_SUPPLY
          - PART_TYPE_INFORMATION_SUBMODEL
          maxItems: 50
          type: string
      - in: query
        name: direction
        required: false
        schema:
          additionalProperties: false
          enum:
          - INBOUND
          - OUTBOUND
          maxItems: 50
          type: string
      responses:
        '201':
          content:
            '*/*':
              schema:
                additionalProperties: false
                type: object
          description: accepted
        '400':
          content:
            '*/*':
              schema:
                additionalProperties: false
                type: object
          description: bad request
      tags:
      - erp-adapter-controller
  /files/upload:
    post:
      description: "Accepts a multipart/form-data upload of an Excel file with `.xlsx`\
        \ extension. The import supports Demand, Production, Delivery and Stock information.\
        \ The applicable type of information is automatically determined by the server.\
        \ \n\nShould any row of the data fail, no data will be saved. In this case\
        \ detailed error reports are returned."
      operationId: uploadExcelFile
      requestBody:
        content:
          multipart/form-data:
            schema:
              additionalProperties: false
              properties:
                file:
                  format: binary
                  maxItems: 50
                  type: string
              required:
              - file
              type: object
      responses:
        '200':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/DataImportResult'
                additionalProperties: false
          description: Data imported successfully
        '400':
          content:
            '*/*':
              schema:
                additionalProperties: false
                maxItems: 50
                type: string
          description: Bad request (missing file or invalid file type)
        '401':
          content:
            '*/*':
              schema:
                additionalProperties: false
                maxItems: 50
                type: string
          description: Unauthorized (missing or invalid API key)
        '422':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/DataImportResult'
                additionalProperties: false
          description: Invalid data
        '500':
          content:
            '*/*':
              schema:
                additionalProperties: false
                maxItems: 50
                type: string
          description: Server error
      summary: Import data via excel file -- ADMIN ONLY
      tags:
      - file-controller
  /item-stock/request/{materialnumber}/{direction}/submodel/{representation}:
    get:
      operationId: getMappingItemStock2
      parameters:
      - in: header
        name: edc-bpn
        required: true
        schema:
          additionalProperties: false
          maxItems: 50
          type: string
      - in: path
        name: materialnumber
        required: true
        schema:
          additionalProperties: false
          maxItems: 50
          type: string
      - in: path
        name: direction
        required: true
        schema:
          additionalProperties: false
          enum:
          - INBOUND
          - OUTBOUND
          maxItems: 50
          type: string
      - in: path
        name: representation
        required: true
        schema:
          additionalProperties: false
          maxItems: 50
          type: string
      responses:
        '200':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ItemStockSamm'
                additionalProperties: false
          description: Ok
        '400':
          description: Bad Request
        '500':
          description: Internal Server Error
        '501':
          description: Unsupported representation
      summary: 'This endpoint receives the ItemStock Submodel 2.0.0 requests. This
        endpoint is meant to be accessed by partners via EDC only. '
      tags:
      - item-stock-request-api-controller
  /material-demand/request/{materialnumbercx}/submodel/{representation}:
    get:
      operationId: getDemandMapping
      parameters:
      - in: header
        name: edc-bpn
        required: true
        schema:
          additionalProperties: false
          maxItems: 50
          type: string
      - in: path
        name: materialnumbercx
        required: true
        schema:
          additionalProperties: false
          maxItems: 50
          type: string
      - in: path
        name: representation
        required: true
        schema:
          additionalProperties: false
          maxItems: 50
          type: string
      responses:
        '200':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ShortTermMaterialDemand'
                additionalProperties: false
          description: Ok
        '400':
          description: Bad Request
        '500':
          description: Internal Server Error
        '501':
          description: Unsupported representation
      summary: 'This endpoint receives the ShortTermMaterialDemand Submodel 1.0.0
        requests. This endpoint is meant to be accessed by partners via EDC only. '
      tags:
      - demand-request-api-controller
  /materialpartnerrelations:
    get:
      description: Returns a list of all MaterialPartnerRelations as DTOs.
      operationId: getAllMaterialPartnerRelations
      responses:
        '200':
          content:
            '*/*':
              schema:
                additionalProperties: false
                items:
                  $ref: '#/components/schemas/MaterialPartnerRelationDto'
                maxItems: 50
                type: array
          description: Successfully retrieved all MaterialPartnerRelations.
        '500':
          content:
            '*/*':
              schema:
                additionalProperties: false
                items:
                  $ref: '#/components/schemas/MaterialPartnerRelationDto'
                maxItems: 50
                type: array
          description: Internal Server Error.
      summary: Get all Material Partner Relations -- ADMIN ONLY
      tags:
      - material-partner-relations-controller
    post:
      description: 'Creates a new MaterialPartnerRelation with the given parameter
        data. Please note that this is only possible, if the designated Material and
        Partner entities have already been created before this request. '
      operationId: createMaterialPartnerRelation
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MaterialPartnerRelationDto'
              additionalProperties: false
        required: true
      responses:
        '200':
          content:
            '*/*':
              schema:
                additionalProperties: false
                type: object
          description: Successfully created a new MaterialPartnerRelationEntity.
        '400':
          content:
            '*/*':
              schema:
                additionalProperties: false
                type: object
          description: Material and/or Partner do not exist or invalid parameters
        '409':
          content:
            '*/*':
              schema:
                additionalProperties: false
                type: object
          description: Relation for given Material and Partner does already exist.
        '500':
          content:
            '*/*':
              schema:
                additionalProperties: false
                type: object
          description: Internal Server Error.
      summary: Creates a Material Partner Relation -- ADMIN ONLY
      tags:
      - material-partner-relations-controller
    put:
      description: 'Updates an existing MaterialPartnerRelation. You have to specify
        the ownMaterialNumber and the partnerBpnl. The other three parameters are
        genuinely optional. Provide them only if you want to change their values. '
      operationId: updateMaterialPartnerRelation
      parameters:
      - description: The Material Number that is used in your own company to identify
          the Material, encoded in base64
        in: query
        name: ownMaterialNumber
        required: true
        schema:
          additionalProperties: false
          maxItems: 50
          type: string
      - description: The unique BPNL that was assigned to that Partner.
        example: BPNL2222222222RR
        in: query
        name: partnerBpnl
        required: true
        schema:
          additionalProperties: false
          maxItems: 50
          type: string
      - description: The Material Number that this Partner is using in his own company
          to identify the Material, encoded in base64
        in: query
        name: partnerMaterialNumber
        required: false
        schema:
          additionalProperties: false
          maxItems: 50
          type: string
      - description: The CatenaX Number that this Partner uses
        example: 860fb504-b884-4009-9313-c6fb6cdc776b
        in: query
        name: partnerCXNumber
        required: false
        schema:
          additionalProperties: false
          maxItems: 50
          type: string
      - description: The informal name that this Partner uses
        example: Semiconductor
        in: query
        name: nameAtManufacturer
        required: false
        schema:
          additionalProperties: false
          maxItems: 50
          type: string
      - description: This boolean flag indicates whether this Partner is a potential
          supplier of the given Material.
        example: true
        in: query
        name: partnerSupplies
        required: false
        schema:
          additionalProperties: false
          type: boolean
      - description: This boolean flag indicates whether this Partner is a potential
          customer of this Material.
        example: true
        in: query
        name: partnerBuys
        required: false
        schema:
          additionalProperties: false
          type: boolean
      responses:
        '200':
          content:
            '*/*':
              schema:
                additionalProperties: false
                type: object
          description: Update was accepted.
        '400':
          content:
            '*/*':
              schema:
                additionalProperties: false
                type: object
          description: Invalid parameters
        '404':
          content:
            '*/*':
              schema:
                additionalProperties: false
                type: object
          description: No existing entity was found.
        '500':
          content:
            '*/*':
              schema:
                additionalProperties: false
                type: object
          description: Internal Server Error.
      summary: Updates a Material Partner Relation -- ADMIN ONLY
      tags:
      - material-partner-relations-controller
  /materials:
    get:
      description: Returns the requested Material dto, specified by the given ownMaterialNumber.
      operationId: getMaterial
      parameters:
      - description: The Material Number that is used in your own company to identify
          the Material, encoded in base64
        in: query
        name: ownMaterialNumber
        required: true
        schema:
          additionalProperties: false
          maxItems: 50
          type: string
      responses:
        '200':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/MaterialEntityDto'
                additionalProperties: false
          description: Returns the requested Material.
        '400':
          description: Invalid parameter
        '404':
          description: Requested Material was not found.
      summary: Gets a Material by ownMaterialNumber
      tags:
      - material-controller
    post:
      description: Creates a new Material entity with the data given in the request
        body. As a bare minimum, it must contain a new, unique ownMaterialNumber.
      operationId: createMaterial
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MaterialEntityDto'
              additionalProperties: false
        required: true
      responses:
        '200':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/MaterialEntityDto'
                additionalProperties: false
          description: Successfully created a new Material entity.
        '400':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/MaterialEntityDto'
                additionalProperties: false
          description: Malformed request body.
        '409':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/MaterialEntityDto'
                additionalProperties: false
          description: Material with the given ownMaterialNumber already exists.
        '500':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/MaterialEntityDto'
                additionalProperties: false
          description: Internal Server error.
      summary: Creates a Material -- ADMIN ONLY
      tags:
      - material-controller
    put:
      description: Updates an existing Material entity with the data given in the
        request body.
      operationId: updateMaterial
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MaterialEntityDto'
              additionalProperties: false
        required: true
      responses:
        '200':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/MaterialEntityDto'
                additionalProperties: false
          description: Update was accepted.
        '400':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/MaterialEntityDto'
                additionalProperties: false
          description: Malformed request body.
        '404':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/MaterialEntityDto'
                additionalProperties: false
          description: No existing Material Entity found, no update was performed.
        '500':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/MaterialEntityDto'
                additionalProperties: false
          description: Internal Server Error.
      summary: Updates a Material -- ADMIN ONLY
      tags:
      - material-controller
  /materials/all:
    get:
      description: Returns a list of all Materials and Products.
      operationId: listMaterials
      responses:
        '200':
          content:
            '*/*':
              schema:
                additionalProperties: false
                items:
                  $ref: '#/components/schemas/MaterialEntityDto'
                maxItems: 50
                type: array
          description: OK
      summary: Gets all materials
      tags:
      - material-controller
  /materials/refresh:
    get:
      description: Requests material data for the given material from all partners
      operationId: refreshMaterialData
      parameters:
      - description: encoded in base64
        in: query
        name: ownMaterialNumber
        required: true
        schema:
          additionalProperties: false
          maxItems: 50
          type: string
      responses:
        '200':
          content:
            '*/*':
              schema:
                additionalProperties: false
                maxItems: 50
                type: string
          description: OK
      summary: Refreshes partner data for specified material
      tags:
      - material-controller
  /partners:
    get:
      description: Returns the requested PartnerDto.
      operationId: getPartner
      parameters:
      - description: The unique BPNL that was assigned to that Partner.
        example: BPNL2222222222RR
        in: query
        name: partnerBpnl
        required: true
        schema:
          additionalProperties: false
          maxItems: 50
          type: string
      responses:
        '200':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/PartnerDto'
                additionalProperties: false
          description: Found Partner, returning it in response body.
        '400':
          description: Invalid parameter.
        '404':
          description: Requested Partner not found.
        '500':
          description: Internal Server Error.
      summary: Gets a specific Partner -- ADMIN ONLY
      tags:
      - partner-controller
    post:
      description: Creates a new Partner entity with the data given in the request
        body. Please note that no UUID can be assigned to a Partner that wasn't created
        before. So the request body must not contain a UUID.
      operationId: createPartner
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PartnerDto'
              additionalProperties: false
        required: true
      responses:
        '200':
          content:
            '*/*':
              schema:
                additionalProperties: false
                type: object
          description: Partner created successfully.
        '400':
          content:
            '*/*':
              schema:
                additionalProperties: false
                type: object
          description: Request body was malformed, didn't meet the minimum constraints
            or wrongfully contained a UUID.
        '409':
          content:
            '*/*':
              schema:
                additionalProperties: false
                type: object
          description: 'The BPNL specified in the request body is already assigned. '
      summary: Creates a new Partner -- ADMIN ONLY
      tags:
      - partner-controller
  /partners/all:
    get:
      description: 'Returns a list of all Partners. '
      operationId: listPartners
      responses:
        '200':
          content:
            '*/*':
              schema:
                additionalProperties: false
                items:
                  $ref: '#/components/schemas/PartnerDto'
                maxItems: 50
                type: array
          description: OK
      summary: Gets all Partners
      tags:
      - partner-controller
  /partners/own:
    get:
      description: Returns the own partnr entity.
      operationId: getOwnPartnerEntity
      responses:
        '200':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Partner'
                additionalProperties: false
          description: OK
      summary: Gets the own Partner entity
      tags:
      - partner-controller
  /partners/ownSites:
    get:
      description: Returns all sites of the puris partner using the puris system.
      operationId: getOwnSites
      responses:
        '200':
          content:
            '*/*':
              schema:
                additionalProperties: false
                items:
                  $ref: '#/components/schemas/SiteDto'
                maxItems: 50
                type: array
          description: OK
      summary: Gets the own sites
      tags:
      - partner-controller
  /partners/putAddress:
    put:
      description: 'Updates an existing Partner by adding a new Address. If that Partner
        already has an Address with the BPNA given in the request body, that existing
        Address will be overwritten. '
      operationId: addAddress
      parameters:
      - description: The unique BPNL that was assigned to that Partner.
        example: BPNL2222222222RR
        in: query
        name: partnerBpnl
        required: true
        schema:
          additionalProperties: false
          maxItems: 50
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddressDto'
              additionalProperties: false
        required: true
      responses:
        '200':
          content:
            '*/*':
              schema:
                additionalProperties: false
                type: object
          description: Update accepted.
        '400':
          content:
            '*/*':
              schema:
                additionalProperties: false
                type: object
          description: Invalid Address data or invalid partnerBpnl.
        '404':
          content:
            '*/*':
              schema:
                additionalProperties: false
                type: object
          description: Partner not found.
        '500':
          content:
            '*/*':
              schema:
                additionalProperties: false
                type: object
          description: Internal Server Error.
      summary: Adds a new Address to a Partner -- ADMIN ONLY
      tags:
      - partner-controller
  /partners/putSite:
    put:
      description: 'Updates an existing Partner by adding a new Site. If that Partner
        already has a Site with the BPNS given in the request body, that existing
        Site will be overwritten. '
      operationId: addSite
      parameters:
      - description: The unique BPNL that was assigned to that Partner.
        example: BPNL2222222222RR
        in: query
        name: partnerBpnl
        required: true
        schema:
          additionalProperties: false
          maxItems: 50
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SiteDto'
              additionalProperties: false
        required: true
      responses:
        '200':
          content:
            '*/*':
              schema:
                additionalProperties: false
                type: object
          description: Update accepted.
        '400':
          content:
            '*/*':
              schema:
                additionalProperties: false
                type: object
          description: Invalid Address data or invalid partnerBpnl.
        '404':
          content:
            '*/*':
              schema:
                additionalProperties: false
                type: object
          description: Partner not found.
        '500':
          content:
            '*/*':
              schema:
                additionalProperties: false
                type: object
          description: Internal Server Error.
      summary: Adds a new Site to a Partner -- ADMIN ONLY
      tags:
      - partner-controller
  /partners/{partnerBpnl}/materials:
    get:
      description: Returns all materials the specified partner is associated with.
      operationId: getMaterials_1
      parameters:
      - in: path
        name: partnerBpnl
        required: true
        schema:
          additionalProperties: false
          maxItems: 50
          type: string
      responses:
        '200':
          content:
            '*/*':
              schema:
                additionalProperties: false
                items:
                  $ref: '#/components/schemas/Material'
                maxItems: 50
                type: array
          description: OK
      summary: Gets all associated materials for Partner
      tags:
      - partner-controller
  /parttypeinformation/{materialnumber}/submodel/{representation}:
    get:
      description: 'Endpoint that delivers PartTypeInformation of own products to
        customer partners. ''materialnumber'' must be set to the ownMaterialNumber
        of the party, that receives the request. Please note that the SAMMs delivered
        by this endpoint don''t provide partClassification and partSitesInformationAsPlanned
        data. This endpoint is meant to be accessed by partners via EDC only. '
      operationId: getMapping
      parameters:
      - in: header
        name: edc-bpn
        required: true
        schema:
          additionalProperties: false
          maxItems: 50
          type: string
      - description: The material number that the request receiving party uses for
          the material in question
        in: path
        name: materialnumber
        required: true
        schema:
          additionalProperties: false
          maxItems: 50
          type: string
      - description: Must be set to '$value'
        in: path
        name: representation
        required: true
        schema:
          additionalProperties: false
          maxItems: 50
          type: string
      responses:
        '200':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/PartTypeInformationSAMM'
                additionalProperties: false
          description: Ok
        '400':
          description: 'Invalid request parameters. '
        '401':
          description: 'Access forbidden. '
        '404':
          description: 'Product not found for given parameters. '
        '501':
          description: 'Unsupported representation requested. '
      tags:
      - part-type-information-controller
  /planned-production/request/{materialnumbercx}/submodel/{representation}:
    get:
      operationId: getProductionMapping
      parameters:
      - in: header
        name: edc-bpn
        required: true
        schema:
          additionalProperties: false
          maxItems: 50
          type: string
      - in: path
        name: materialnumbercx
        required: true
        schema:
          additionalProperties: false
          maxItems: 50
          type: string
      - in: path
        name: representation
        required: true
        schema:
          additionalProperties: false
          maxItems: 50
          type: string
      responses:
        '200':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/PlannedProductionOutput'
                additionalProperties: false
          description: Ok
        '400':
          description: Bad Request
        '500':
          description: Internal Server Error
        '501':
          description: Unsupported representation
      summary: 'This endpoint receives the PlannedProduction Submodel 2.0.0 requests.
        This endpoint is meant to be accessed by partners via EDC only. '
      tags:
      - production-request-api-controller
  /production:
    get:
      description: Get all planned productions for the given material number. Optionally
        the production site can be filtered by its bpns.
      operationId: getAllProductions
      parameters:
      - description: encoded in base64
        in: query
        name: ownMaterialNumber
        required: true
        schema:
          additionalProperties: false
          maxItems: 50
          type: string
      - in: query
        name: site
        required: false
        schema:
          additionalProperties: false
          maxItems: 50
          type: string
      responses:
        '200':
          content:
            '*/*':
              schema:
                additionalProperties: false
                items:
                  $ref: '#/components/schemas/ProductionDto'
                maxItems: 50
                type: array
          description: OK
      summary: Get all planned productions for the given Material
      tags:
      - production-controller
    post:
      description: "Creates a new production. \n **Note:** If the backend should automatically\
        \ set `lastUpdatedOnDateTime` please set it to null."
      operationId: createProduction
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProductionDto'
              additionalProperties: false
        required: true
      responses:
        '201':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProductionDto'
                additionalProperties: false
          description: Planned Production was created.
        '400':
          description: Malformed or invalid request body.
        '409':
          description: Planned Production already exists.
        '500':
          description: Internal Server Error.
      summary: Creates a new planned production
      tags:
      - production-controller
    put:
      description: "Updates an existing production.  \n **Note:** If the backend should\
        \ automatically set `lastUpdatedOnDateTime` please set it to null."
      operationId: updateProduction
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProductionDto'
              additionalProperties: false
        required: true
      responses:
        '200':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProductionDto'
                additionalProperties: false
          description: Planned Productions was updated.
        '400':
          description: Malformed or invalid request body.
        '404':
          description: Planned Production does not exist.
        '500':
          description: Internal Server Error.
      summary: Updates a planned production by its UUID
      tags:
      - production-controller
  /production/range:
    post:
      description: "Creates a range of new production. \n **Note:** If the backend\
        \ should automatically set `lastUpdatedOnDateTime` please set it to null."
      operationId: createProductionRange
      requestBody:
        content:
          application/json:
            schema:
              additionalProperties: false
              items:
                $ref: '#/components/schemas/ProductionDto'
              maxItems: 50
              type: array
        required: true
      responses:
        '201':
          content:
            '*/*':
              schema:
                additionalProperties: false
                items:
                  $ref: '#/components/schemas/ProductionDto'
                maxItems: 50
                type: array
          description: Planned Productions were created.
        '400':
          description: Malformed or invalid request body.
        '409':
          description: Planned Productions already exist.
        '500':
          description: Internal Server Error.
      summary: Creates a range of planned productions
      tags:
      - production-controller
  /production/reported:
    get:
      description: Get all productions of partners for a material number. Optionally
        the partners can be filtered by their bpnl and the production site can be
        filtered by its bpns.
      operationId: getAllProductionsForPartner
      parameters:
      - description: encoded in base64
        in: query
        name: ownMaterialNumber
        required: true
        schema:
          additionalProperties: false
          maxItems: 50
          type: string
      - in: query
        name: bpnl
        required: false
        schema:
          additionalProperties: false
          maxItems: 50
          type: string
      - in: query
        name: site
        required: false
        schema:
          additionalProperties: false
          maxItems: 50
          type: string
      responses:
        '200':
          content:
            '*/*':
              schema:
                additionalProperties: false
                items:
                  $ref: '#/components/schemas/ProductionDto'
                maxItems: 50
                type: array
          description: OK
      summary: Get all productions of partners for a material
      tags:
      - production-controller
  /production/reported/refresh:
    get:
      description: Refreshes all reported productions from the production request
        API.
      operationId: refreshReportedProductions
      parameters:
      - description: encoded in base64
        in: query
        name: ownMaterialNumber
        required: true
        schema:
          additionalProperties: false
          maxItems: 50
          type: string
      responses:
        '200':
          content:
            '*/*':
              schema:
                additionalProperties: false
                items:
                  $ref: '#/components/schemas/PartnerDto'
                maxItems: 50
                type: array
          description: OK
      summary: Refreshes all reported productions
      tags:
      - production-controller
  /production/{id}:
    delete:
      operationId: deleteProduction
      parameters:
      - in: path
        name: id
        required: true
        schema:
          additionalProperties: false
          format: uuid
          maxItems: 50
          type: string
      responses:
        '204':
          description: Planned Productions was deleted.
        '400':
          description: Malformed or invalid request body.
        '404':
          description: Planned Production does not exist.
        '500':
          description: Internal Server Error.
      summary: Deletes a planned production by its UUID
      tags:
      - production-controller
  /stockView/customer:
    get:
      description: Returns a list of all Partners that are ordering the given material
      operationId: getCustomerPartnersOrderingMaterial
      parameters:
      - description: encoded in base64
        in: query
        name: ownMaterialNumber
        required: true
        schema:
          additionalProperties: false
          maxItems: 50
          type: string
      responses:
        '200':
          content:
            '*/*':
              schema:
                additionalProperties: false
                items:
                  $ref: '#/components/schemas/PartnerDto'
                maxItems: 50
                type: array
          description: OK
        '400':
          description: Invalid parameter
      tags:
      - stock-view-controller
  /stockView/material-stocks:
    get:
      description: Get all material stocks for the given material number.
      operationId: getMaterialStocks
      parameters:
      - description: encoded in base64
        in: query
        name: ownMaterialNumber
        required: true
        schema:
          additionalProperties: false
          maxItems: 50
          type: string
      responses:
        '200':
          content:
            '*/*':
              schema:
                additionalProperties: false
                items:
                  $ref: '#/components/schemas/MaterialStockDto'
                maxItems: 50
                type: array
          description: OK
      summary: Get all material stocks for the given Material
      tags:
      - stock-view-controller
    post:
      description: "Creates a new material-stock. \n**Note:** If the backend should\
        \ automatically set `lastUpdatedOn` please set it to null."
      operationId: createMaterialStocks
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MaterialStockDto'
              additionalProperties: false
        required: true
      responses:
        '200':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/MaterialStockDto'
                additionalProperties: false
          description: Material Stock was created.
        '400':
          description: Malformed or invalid request body.
        '409':
          description: Material Stock does already exist.
        '500':
          description: Internal Server Error.
      tags:
      - stock-view-controller
    put:
      description: "Updates an existing material-stock. \n**Note:** If the backend\
        \ should automatically set `lastUpdatedOn` please set it to null."
      operationId: updateMaterialStocks
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MaterialStockDto'
              additionalProperties: false
        required: true
      responses:
        '200':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/MaterialStockDto'
                additionalProperties: false
          description: Material Stock was updated.
        '400':
          description: Malformed request body.
        '500':
          description: Internal Server Error.
      tags:
      - stock-view-controller
  /stockView/material-stocks/{id}:
    delete:
      description: Deletes an existing material-stock
      operationId: deleteMaterialStock
      parameters:
      - in: path
        name: id
        required: true
        schema:
          additionalProperties: false
          format: uuid
          maxItems: 50
          type: string
      responses:
        '204':
          description: Material Stock was deleted.
        '404':
          description: Material Stock not found.
        '500':
          description: Internal Server Error.
      tags:
      - stock-view-controller
  /stockView/materialnumbers-mapping:
    get:
      description: Returns a mapping of all material numbers, that others partners
        are usingfor the material given in the request parameter.
      operationId: getMaterialNumbers
      parameters:
      - description: encoded in base64
        in: query
        name: ownMaterialNumber
        required: true
        schema:
          additionalProperties: false
          maxItems: 50
          type: string
      responses:
        '200':
          content:
            '*/*':
              examples:
                Basic sample:
                  description: Basic sample
                  value:
                    BPNL1234567890ZZ: MNR-8101-ID146955.001
                    BPNL4444444444XX: MNR-7307-AU340474.002
          description: OK
        '400':
          description: Invalid parameter
      tags:
      - stock-view-controller
  /stockView/materials:
    get:
      description: Returns a list of all materials (excluding products)
      operationId: getMaterials
      parameters:
      - in: query
        name: includeDaysOfSupply
        required: false
        schema:
          additionalProperties: false
          type: boolean
      responses:
        '200':
          content:
            '*/*':
              schema:
                additionalProperties: false
                items:
                  $ref: '#/components/schemas/FrontendMaterialDto'
                maxItems: 50
                type: array
          description: OK
      tags:
      - stock-view-controller
  /stockView/product-stocks:
    get:
      description: Get all material stocks for the given material number.
      operationId: getProductStocks
      parameters:
      - description: encoded in base64
        in: query
        name: ownMaterialNumber
        required: true
        schema:
          additionalProperties: false
          maxItems: 50
          type: string
      responses:
        '200':
          content:
            '*/*':
              schema:
                additionalProperties: false
                items:
                  $ref: '#/components/schemas/ProductStockDto'
                maxItems: 50
                type: array
          description: OK
      summary: Get all material stocks for the given Material
      tags:
      - stock-view-controller
    post:
      description: "Creates a new product-stock. \n**Note:** If the backend should\
        \ automatically set `lastUpdatedOn` please set it to null."
      operationId: createProductStocks
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProductStockDto'
              additionalProperties: false
        required: true
      responses:
        '200':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProductStockDto'
                additionalProperties: false
          description: Product Stock was created.
        '400':
          description: Malformed or invalid request body.
        '409':
          description: Product Stock does already exist.
        '500':
          description: Internal Server Error.
      tags:
      - stock-view-controller
    put:
      description: "Updates an existing product-stock. \n**Note:** If the backend\
        \ should automatically set `lastUpdatedOn` please set it to null."
      operationId: updateProductStocks
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProductStockDto'
              additionalProperties: false
        required: true
      responses:
        '200':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProductStockDto'
                additionalProperties: false
          description: Product Stock was updated.
        '400':
          description: Malformed request body.
        '500':
          description: Internal Server Error.
      tags:
      - stock-view-controller
  /stockView/product-stocks/{id}:
    delete:
      description: Deletes an existing material-stock
      operationId: deleteProductStock
      parameters:
      - in: path
        name: id
        required: true
        schema:
          additionalProperties: false
          format: uuid
          maxItems: 50
          type: string
      responses:
        '204':
          description: Product Stock was deleted.
        '404':
          description: Product Stock not found.
        '500':
          description: Internal Server Error.
      tags:
      - stock-view-controller
  /stockView/products:
    get:
      description: Returns a list of all products (excluding materials)
      operationId: getProducts
      parameters:
      - in: query
        name: includeDaysOfSupply
        required: false
        schema:
          additionalProperties: false
          type: boolean
      responses:
        '200':
          content:
            '*/*':
              schema:
                additionalProperties: false
                items:
                  $ref: '#/components/schemas/FrontendMaterialDto'
                maxItems: 50
                type: array
          description: OK
      tags:
      - stock-view-controller
  /stockView/reported-material-stocks:
    get:
      description: Returns a list of all materials the partner (supplier) reported
        he has at his site. Only stocks for the given material number are returned.
      operationId: getSupplierMaterialStocks
      parameters:
      - description: encoded in base64
        in: query
        name: ownMaterialNumber
        required: true
        schema:
          additionalProperties: false
          maxItems: 50
          type: string
      responses:
        '200':
          content:
            '*/*':
              schema:
                additionalProperties: false
                items:
                  $ref: '#/components/schemas/ReportedMaterialStockDto'
                maxItems: 50
                type: array
          description: OK
        '400':
          description: Invalid parameter
      tags:
      - stock-view-controller
  /stockView/reported-product-stocks:
    get:
      description: Returns a list of all products the partner (customer) reported
        he has at his site. Only stocks for the given material number are returned.
      operationId: getCustomerProductStocks
      parameters:
      - description: encoded in base64
        in: query
        name: ownMaterialNumber
        required: true
        schema:
          additionalProperties: false
          maxItems: 50
          type: string
      responses:
        '200':
          content:
            '*/*':
              schema:
                additionalProperties: false
                items:
                  $ref: '#/components/schemas/ReportedProductStockDto'
                maxItems: 50
                type: array
          description: OK
        '400':
          description: Invalid parameter
      tags:
      - stock-view-controller
  /stockView/supplier:
    get:
      description: Returns a list of all Partners that are supplying the given material
      operationId: getSupplierPartnersSupplyingMaterial
      parameters:
      - description: encoded in base64
        in: query
        name: ownMaterialNumber
        required: true
        schema:
          additionalProperties: false
          maxItems: 50
          type: string
      responses:
        '200':
          content:
            '*/*':
              schema:
                additionalProperties: false
                items:
                  $ref: '#/components/schemas/PartnerDto'
                maxItems: 50
                type: array
          description: OK
        '400':
          description: Invalid parameter
      tags:
      - stock-view-controller
  /stockView/update-reported-material-stocks:
    get:
      description: For the given material, all known suppliers will be requested to
        report theircurrent stocks for our input material. The response body contains
        a list of those supplier partners that were sent a request.Please note that
        these requests are handled asynchronously by the partners, so there are no
        guarantees, if and when the corresponding responses will be available. As
        soon as a response arrives, it will be available via a call to the GET reported-material-stocks
        endpoint.
      operationId: triggerReportedMaterialStockUpdateForMaterialNumber
      parameters:
      - description: encoded in base64
        in: query
        name: ownMaterialNumber
        required: true
        schema:
          additionalProperties: false
          maxItems: 50
          type: string
      responses:
        '200':
          content:
            '*/*':
              schema:
                additionalProperties: false
                items:
                  $ref: '#/components/schemas/PartnerDto'
                maxItems: 50
                type: array
          description: OK
        '400':
          description: Invalid parameter
      tags:
      - stock-view-controller
  /stockView/update-reported-product-stocks:
    get:
      description: For the given material, all known customers will be requested to
        report theircurrent stocks for our output material. The response body contains
        a list of those customer partners that were sent a request.Please note that
        these requests are handled asynchronously by the partners, so there are no
        guarantees, if and when the corresponding responses will be available. As
        soon as a response arrives, it will be available via a call to the GET reported-material-stocks
        endpoint.
      operationId: triggerReportedProductStockUpdateForMaterialNumber
      parameters:
      - description: encoded in base64
        in: query
        name: ownMaterialNumber
        required: true
        schema:
          additionalProperties: false
          maxItems: 50
          type: string
      responses:
        '200':
          content:
            '*/*':
              schema:
                additionalProperties: false
                items:
                  $ref: '#/components/schemas/PartnerDto'
                maxItems: 50
                type: array
          description: OK
        '400':
          description: Invalid parameter
      tags:
      - stock-view-controller
security:
- X-API-KEY: []
servers:
- description: Generated server url
  url: http://localhost:8081/catena
