diff --git a/openApi/resiliency/kit_osim_openAPI.yaml b/openApi/resiliency/kit_osim_openAPI.yaml new file mode 100644 index 00000000000..23e34a4b5b7 --- /dev/null +++ b/openApi/resiliency/kit_osim_openAPI.yaml @@ -0,0 +1,980 @@ +openapi: 3.0.1 +info: + title: OSim API + description: OSim API for requesting and receiving simulation results as well as for interactions related to scenario management. + version: 2.0.0 +servers: + - url: https://{server-url} +tags: + - name: requestLatestSimulationResult + description: Request Latest Simulation Result + - name: receiveLatestSimulationResult + description: Receive Latest Simulation Result + - name: requestScenarioFeedback + description: Request Scenario Feedback + - name: receiveScenarioFeedback + description: Receive Scenario Feedback +paths: + /api/requestLatestSimulationResult/bpns/{bpns}/requestId/{requestId}/simulationRunId/{simulationRunId}: + get: + tags: + - requestLatestSimulationResult + operationId: requestLatestSimulationResult + description: Request latest simulation result by referring the latest simulation run id available in own OSim Manager + parameters: + - name: requestId + in: path + required: true + style: simple + explode: false + schema: + type: string + example: 8d628899-3e6f-4666-91c3-74ee7ab88b2b + - name: bpns + in: path + required: true + style: simple + explode: false + schema: + type: string + example: BPNS00000007OTZ3 + - name: simulationRunId + in: path + required: true + style: simple + explode: false + schema: + type: string + example: 50737df3-4237-4652-b092-1ef8649f6ca6 + responses: + '200': + description: OK + content: + text: + schema: + type: string + example: The request has succeeded. The requestLatestSimulationResult has been successfully processed in the backend system. + '400': + description: Bad request + content: + text: + schema: + type: string + example: The server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing). + '401': + description: Unauthorized + content: + text: + schema: + type: string + example: Although the HTTP standard specifies "unauthorized", semantically this response means "unauthenticated". That is, the client must authenticate itself to get the requested response. + '402': + description: Unknown BPNS + content: + text: + schema: + type: string + example: The BPNS which is given as parameter is not registered in the data provider database as a direct partner. + '403': + description: Forbidden + content: + text: + schema: + type: string + example: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource. + '404': + description: No simulation results are released + content: + text: + schema: + type: string + example: Data provider doesn’t have any released simulation results + '405': + description: Method not allowed + content: + text: + schema: + type: string + example: The method used to request the data was not GET + '406': + description: No newer simulation available + content: + text: + schema: + type: string + example: The simulationRunId which is given as parameter is identical to the currently released simulation run in the data provider database + '407': + description: No shipments planned + content: + text: + schema: + type: string + example: No shipments are currently planned for the requestor + '500': + description: Internal server error + content: + text: + schema: + type: string + example: The server has encountered a situation it does not know how to handle. + '501': + description: Service unavailable + content: + text: + schema: + type: string + example: The server is not ready to handle the request. + servers: + - url: https://{server-url} + servers: + - url: https://{server-url} + /api/receiveLatestSimulationResult/requestId/{requestId}: + post: + tags: + - receiveLatestSimulationResult + description: Receive latest simulation result which can be stored in own OSim Manager instance + operationId: receiveLatestSimulationResult + parameters: + - name: requestId + in: path + required: true + style: simple + explode: false + schema: + type: string + example: 8d628899-3e6f-4666-91c3-74ee7ab88b2b + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/requestId_requestId_body' + examples: + '0': + value: |- + { + "owner": { "id": "BPNS00000007OTZ3" }, + "dataQuality": 1, + "description": "Daily standard simulation", + "comment": "successful simulation", + "expirationTimestamp": "2023-03-24T09:15:24.000Z", + "runId": "0fece48b-c8d1-4180-1a9caca6d67e", + "shipments": [ + { + "handlingUnits": [ + { + "name": "Palette", + "volume": 1, + "weight": 189, + "batches": [ + { + "unitOfMeasurement": "KG", + "materialName": "KK1000GR-Gehäuse-Rot", + "quantity": 50, + "materialNumber": "KK1000GR", + "batchOrderId": "Order-0001", + "batchId": "Batch_1", + "hazardousGoods": false, + "batchExpirationTimestamp": "2023-08-22T16:00:00.000Z", + "batchNumber": "45" + } + ], + "handlingUnitId": "HUT_1", + "amount": 1 + } + ], + "shipmentId": "DE51515151", + "recipientTimestampPlanned": "2023-04-19T09:00:00.000Z", + "destination": { "id": "BPNS00000007OTZ3" }, + "recipient": { "id": "BPNS00000007OTZ4" }, + "logistics": { "id": "BPNS00000007OS0H" }, + "preceding": {}, + "splittingAllowed": true, + "destinationTimestamp": "2023-03-19T09:00:00.000Z" + } + ], + "timestamp": "2023-03-09T14:13:42.806Z" + } + responses: + '200': + description: OK + content: + text: + schema: + type: string + example: The POST has succeeded. The receiveLatestSimulationResult has been successfully processed in the backend system. + '400': + description: Bad request + content: + text: + schema: + type: string + example: The server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing). + '401': + description: Unauthorized + content: + text: + schema: + type: string + example: Although the HTTP standard specifies "unauthorized", semantically this response means "unauthenticated". That is, the client must authenticate itself to get the requested response. + '402': + description: Payload is empty + content: + text: + schema: + type: string + example: The payload of the API call is empty. + '403': + description: Forbidden + content: + text: + schema: + type: string + example: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource. + '404': + description: Payload structure unknown + content: + text: + schema: + type: string + example: The payload structure is unknown or correspond not to the defined semantic model + '405': + description: Method not allowed + content: + text: + schema: + type: string + example: The method used to receive the data was not POST + '406': + description: Payload content invalid + content: + text: + schema: + type: string + example: The content of the payload is invalid. E.g. “owner unknown” + '500': + description: Internal server error + content: + text: + schema: + type: string + example: The server has encountered a situation it does not know how to handle. + '501': + description: Service unavailable + content: + text: + schema: + type: string + example: The server is not ready to handle the request. + servers: + - url: https://{server-url} + servers: + - url: https://{server-url} + /api/requestScenarioFeedback/bpns/{bpns}: + post: + tags: + - requestScenarioFeedback + operationId: requestScenarioFeedback + description: The requestScenarioFeedback is a request from a OSim partner for feedback on the possible fulfillment of the described scenario. + parameters: + - name: bpns + in: path + required: true + style: simple + explode: false + schema: + type: string + example: BPNS00000007OTZ3 + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/bpns_bpns_body' + examples: + '0': + value: |- + { + "materialFlowScenarioRequest" : { + "scenarioSimResults" : { + "resultOwnId" : "916b5688-8bd8-4d7e-83b9-e0d40939274e", + "resultOwnSimRunInitial" : { + "owner" : { }, + "dataQuality" : 0, + "description" : "Please simulate asap", + "comment" : "successful simulation ", + "expirationTimestamp" : "2023-03-24T09:15:24.000Z", + "runId" : "0fece48b-c8d1-4180-1a9caca6d67e", + "shipments" : [ { + "handlingUnits" : [ { + "name" : "Palette", + "volume" : 1.0, + "weight" : 189.0, + "batches" : [ { + "unitOfMeasurement" : "KG", + "materialName" : "KK1000GR-Gehäuse-Rot", + "quantity" : 50.0, + "materialNumber" : "KK1000GR", + "materialHazardousGoods" : false, + "batchOrderId" : "Order-0001", + "batchId" : "Batch_1", + "batchExpirationTimestamp" : "2023-08-22T16:00:00.000Z", + "batchNumber" : "45" + } ], + "handlingUnitId" : "HUT_1", + "amount" : 1 + } ], + "shipmentId" : "DE51515151", + "recipientTimestampPlanned" : "2023-04-19T09:00:00.000Z", + "destination" : { }, + "recipient" : { }, + "logistics" : { }, + "preceding" : { }, + "splittingAllowed" : true, + "destinationTimestamp" : "2023-03-19T09:00:00.000Z" + } ], + "timestamp" : "2023-03-09T14:13:42.806Z" + }, + "resultOwnSimRunUpdated" : { + "owner" : { }, + "dataQuality" : 0, + "description" : "Please simulate asap", + "comment" : "successful simulation ", + "expirationTimestamp" : "2023-03-24T09:15:24.000Z", + "runId" : "0fece48b-c8d1-4180-1a9caca6d67e", + "shipments" : [ { + "handlingUnits" : [ { + "name" : "Palette", + "volume" : 1.0, + "weight" : 189.0, + "batches" : [ { + "unitOfMeasurement" : "KG", + "materialName" : "KK1000GR-Gehäuse-Rot", + "quantity" : 50.0, + "materialNumber" : "KK1000GR", + "materialHazardousGoods" : false, + "batchOrderId" : "Order-0001", + "batchId" : "Batch_1", + "batchExpirationTimestamp" : "2023-08-22T16:00:00.000Z", + "batchNumber" : "45" + } ], + "handlingUnitId" : "HUT_1", + "amount" : 1 + } ], + "shipmentId" : "DE51515151", + "recipientTimestampPlanned" : "2023-04-19T09:00:00.000Z", + "destination" : { }, + "recipient" : { }, + "logistics" : { }, + "preceding" : { }, + "splittingAllowed" : true, + "destinationTimestamp" : "2023-03-19T09:00:00.000Z" + } ], + "timestamp" : "2023-03-09T14:13:42.806Z" + } + }, + "scenarioParameter" : { + "unitOfMeasurement" : "KG", + "parameterScenario" : "8d464b8b-6977-4952-8a22-0489067ca081", + "parameterComment" : "updated Delivery Date", + "materialName" : "KK1000GR-Gehäuse-Rot", + "parameterQuantityUpdated" : 1.0, + "parameterId" : "847c71e5-614a-468b-a3a0-674bf2af3004", + "materialNumber" : "KK1000GR", + "parameterDeliveryDateUpdated" : "2023-10-10T09:00:00.000Z", + "parameterDeliveryDateInitial" : "2023-10-09T10:00:00.000Z", + "parameterOrderId" : "OID-011123456", + "parameterQuantityInitial" : 1.0 + }, + "scenarioHeader" : { + "scenarioOwnerRole" : "Customer", + "scenarioCreationTimestamp" : "2023-10-04T09:10:00.000Z", + "scenarioExpirationTimestamp" : "2023-10-07T09:10:00.000Z", + "scenarioOwner" : "BPNS0000007OTZ3", + "scenarioDescription" : "Changes in Delivery Date", + "scenarioId" : "8d464b8b-6977-4952-8a22-0489067ca081", + "scenarioTitle" : "Delivery Modification" + } + } + } + responses: + '200': + description: OK + content: + text: + schema: + type: string + example: The request has succeeded. The requestScenarioFeedback has been successfully processed in the backend system. + '400': + description: Bad request + content: + text: + schema: + type: string + example: The server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing). + '401': + description: Unauthorized + content: + text: + schema: + type: string + example: Although the HTTP standard specifies "unauthorized", semantically this response means "unauthenticated". That is, the client must authenticate itself to get the requested response. + '402': + description: Unknown BPNS + content: + text: + schema: + type: string + example: The BPNS which is given as parameter is not registered in the data provider database as a direct partner. + '403': + description: Forbidden + content: + text: + schema: + type: string + example: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource. + '405': + description: Method not allowed + content: + text: + schema: + type: string + example: The method used to request a scenario feedback was not POST + '500': + description: Internal server error + content: + text: + schema: + type: string + example: The server has encountered a situation it does not know how to handle. + '501': + description: Service unavailable + content: + text: + schema: + type: string + example: The server is not ready to handle the request. + servers: + - url: https://{server-url} + servers: + - url: https://{server-url} + /api/receiveScenarioFeedback/bpns/{bpns}/scenarioId/{scenarioId}/feedback/{feedback}: + get: + tags: + - receiveScenarioFeedback + operationId: receiveScenarioFeedback + description: The receiveScenarioFeedback enables the requestor to transmit the result of his scenario-based evaluation to the requestor + parameters: + - name: bpns + in: path + required: true + style: simple + explode: false + schema: + type: string + example: BPNS00000007OTZ3 + - name: scenarioId + in: path + required: true + style: simple + explode: false + schema: + type: string + example: 50737df3-4237-4652-b092-1ef8649f6ca6 + - name: feedback + in: path + required: true + style: simple + explode: false + schema: + type: string + enum: + - Realizable + - NotRealizable + example: Realizable + responses: + '200': + description: OK + content: + text: + schema: + type: string + example: The GET request has succeeded. The receiveScenarioFeedback has been successfully processed in the backend system. + '400': + description: Bad request + content: + text: + schema: + type: string + example: The server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing). + '401': + description: Unauthorized + content: + text: + schema: + type: string + example: Although the HTTP standard specifies "unauthorized", semantically this response means "unauthenticated". That is, the client must authenticate itself to get the requested response. + '402': + description: Unknown BPNS + content: + text: + schema: + type: string + example: The BPNS which is given as parameter is not registered in the data provider database as a direct partner. + '403': + description: Forbidden + content: + text: + schema: + type: string + example: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource. + '405': + description: Method not allowed + content: + text: + schema: + type: string + example: The method used to request a scenario feedback was not GET + '406': + description: Unknown Scenario + content: + text: + schema: + type: string + example: The scenarioID which is given as parameter is not registered. + '407': + description: Unknown State + content: + text: + schema: + type: string + example: The feedbackState value is unknown. + '500': + description: Internal server error + content: + text: + schema: + type: string + example: The server has encountered a situation it does not know how to handle. + '501': + description: Service unavailable + content: + text: + schema: + type: string + example: The server is not ready to handle the request. + servers: + - url: https://{server-url} + servers: + - url: https://{server-url} + /api/pushScenarioState/bpns/{bpns}/scenarioId/{scenarioId}/state/{state}: + get: + tags: + - pushScenarioState + operationId: pushScenarioState + description: The pushScenarioState enables distribution of a new scenario status and thus a notification of the procedure with the planned scenario + parameters: + - name: bpns + in: path + required: true + style: simple + explode: false + schema: + type: string + example: BPNS00000007OTZ3 + - name: scenarioId + in: path + required: true + style: simple + explode: false + schema: + type: string + example: 50737df3-4237-4652-b092-1ef8649f6ca6 + - name: state + in: path + required: true + style: simple + explode: false + schema: + type: string + enum: + - InRealization + - Processed + - Canceled + example: InRealization + responses: + '200': + description: OK + content: + text: + schema: + type: string + example: The GET has succeeded. The pushScenarioState has been successfully processed in the backend system. + '400': + description: Bad request + content: + text: + schema: + type: string + example: The server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing). + '401': + description: Unauthorized + content: + text: + schema: + type: string + example: Although the HTTP standard specifies "unauthorized", semantically this response means "unauthenticated". That is, the client must authenticate itself to get the requested response. + '402': + description: Unknown BPNS + content: + text: + schema: + type: string + example: The BPNS which is given as parameter is not registered in the data provider database as a direct partner. + '403': + description: Forbidden + content: + text: + schema: + type: string + example: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource. + '405': + description: Method not allowed + content: + text: + schema: + type: string + example: The method used to request a scenario feedback was not GET + '406': + description: Unknown Scenario + content: + text: + schema: + type: string + example: The scenarioID which is given as parameter is not registered. + '407': + description: Unknown State + content: + text: + schema: + type: string + example: The scenarioState value is unknown. + '500': + description: Internal server error + content: + text: + schema: + type: string + example: The server has encountered a situation it does not know how to handle. + '501': + description: Service unavailable + content: + text: + schema: + type: string + example: The server is not ready to handle the request. + servers: + - url: https://{server-url} + servers: + - url: https://{server-url} +components: + schemas: + apireceiveLatestSimulationResultrequestIdrequestId_owner: + type: object + properties: + id: + type: string + apireceiveLatestSimulationResultrequestIdrequestId_batches: + type: object + properties: + unitOfMeasurement: + type: string + materialName: + type: string + quantity: + type: integer + materialNumber: + type: string + batchOrderId: + type: string + batchId: + type: string + hazardousGoods: + type: boolean + batchExpirationTimestamp: + type: string + batchNumber: + type: string + apireceiveLatestSimulationResultrequestIdrequestId_handlingUnits: + type: object + properties: + volume: + type: integer + batches: + type: array + items: + $ref: '#/components/schemas/apireceiveLatestSimulationResultrequestIdrequestId_batches' + handlingUnitId: + type: string + amount: + type: integer + name: + type: string + weight: + type: integer + apireceiveLatestSimulationResultrequestIdrequestId_shipments: + type: object + properties: + handlingUnits: + type: array + items: + $ref: '#/components/schemas/apireceiveLatestSimulationResultrequestIdrequestId_handlingUnits' + shipmentId: + type: string + recipientTimestampPlanned: + type: string + destination: + $ref: '#/components/schemas/apireceiveLatestSimulationResultrequestIdrequestId_owner' + recipient: + $ref: '#/components/schemas/apireceiveLatestSimulationResultrequestIdrequestId_owner' + logistics: + $ref: '#/components/schemas/apireceiveLatestSimulationResultrequestIdrequestId_owner' + preceding: + type: object + properties: {} + splittingAllowed: + type: boolean + destinationTimestamp: + type: string + requestId_requestId_body: + type: object + properties: + owner: + $ref: '#/components/schemas/apireceiveLatestSimulationResultrequestIdrequestId_owner' + dataQuality: + type: integer + description: + type: string + comment: + type: string + expirationTimestamp: + type: string + runId: + type: string + shipments: + type: array + items: + $ref: '#/components/schemas/apireceiveLatestSimulationResultrequestIdrequestId_shipments' + timestamp: + type: string + apirequestScenarioFeedbackbpnsbpns_materialFlowScenarioRequest_scenarioSimResults_resultOwnSimRunInitial_batches: + required: + - batchExpirationTimestamp + - batchId + - batchNumber + - batchOrderId + - materialHazardousGoods + - materialName + - materialNumber + - quantity + - unitOfMeasurement + type: object + properties: + unitOfMeasurement: + type: string + materialName: + type: string + quantity: + type: number + materialNumber: + type: string + materialHazardousGoods: + type: boolean + batchOrderId: + type: string + batchId: + type: string + batchExpirationTimestamp: + type: string + batchNumber: + type: string + apirequestScenarioFeedbackbpnsbpns_materialFlowScenarioRequest_scenarioSimResults_resultOwnSimRunInitial_handlingUnits: + required: + - amount + - batches + - handlingUnitId + - name + - volume + - weight + type: object + properties: + name: + type: string + volume: + type: number + weight: + type: number + batches: + type: array + items: + $ref: '#/components/schemas/apirequestScenarioFeedbackbpnsbpns_materialFlowScenarioRequest_scenarioSimResults_resultOwnSimRunInitial_batches' + handlingUnitId: + type: string + amount: + type: integer + apirequestScenarioFeedbackbpnsbpns_materialFlowScenarioRequest_scenarioSimResults_resultOwnSimRunInitial_shipments: + required: + - destination + - destinationTimestamp + - handlingUnits + - logistics + - preceding + - recipient + - recipientTimestampPlanned + - shipmentId + - splittingAllowed + type: object + properties: + handlingUnits: + type: array + items: + $ref: '#/components/schemas/apirequestScenarioFeedbackbpnsbpns_materialFlowScenarioRequest_scenarioSimResults_resultOwnSimRunInitial_handlingUnits' + shipmentId: + type: string + recipientTimestampPlanned: + type: string + destination: + type: object + recipient: + type: object + logistics: + type: object + preceding: + type: object + splittingAllowed: + type: boolean + destinationTimestamp: + type: string + apirequestScenarioFeedbackbpnsbpns_materialFlowScenarioRequest_scenarioSimResults_resultOwnSimRunInitial: + required: + - comment + - dataQuality + - description + - expirationTimestamp + - owner + - runId + - shipments + - timestamp + type: object + properties: + owner: + type: object + dataQuality: + type: integer + description: + type: string + comment: + type: string + expirationTimestamp: + type: string + runId: + type: string + shipments: + type: array + items: + $ref: '#/components/schemas/apirequestScenarioFeedbackbpnsbpns_materialFlowScenarioRequest_scenarioSimResults_resultOwnSimRunInitial_shipments' + timestamp: + type: string + apirequestScenarioFeedbackbpnsbpns_materialFlowScenarioRequest_scenarioSimResults: + required: + - resultOwnId + - resultOwnSimRunInitial + - resultOwnSimRunUpdated + type: object + properties: + resultOwnId: + type: string + resultOwnSimRunInitial: + $ref: '#/components/schemas/apirequestScenarioFeedbackbpnsbpns_materialFlowScenarioRequest_scenarioSimResults_resultOwnSimRunInitial' + resultOwnSimRunUpdated: + $ref: '#/components/schemas/apirequestScenarioFeedbackbpnsbpns_materialFlowScenarioRequest_scenarioSimResults_resultOwnSimRunInitial' + apirequestScenarioFeedbackbpnsbpns_materialFlowScenarioRequest_scenarioParameter: + required: + - materialName + - materialNumber + - parameterComment + - parameterDeliveryDateInitial + - parameterDeliveryDateUpdated + - parameterId + - parameterOrderId + - parameterQuantityInitial + - parameterQuantityUpdated + - parameterScenario + - unitOfMeasurement + type: object + properties: + unitOfMeasurement: + type: string + parameterScenario: + type: string + parameterComment: + type: string + materialName: + type: string + parameterQuantityUpdated: + type: number + parameterId: + type: string + materialNumber: + type: string + parameterDeliveryDateUpdated: + type: string + parameterDeliveryDateInitial: + type: string + parameterOrderId: + type: string + parameterQuantityInitial: + type: number + apirequestScenarioFeedbackbpnsbpns_materialFlowScenarioRequest_scenarioHeader: + required: + - scenarioCreationTimestamp + - scenarioDescription + - scenarioExpirationTimestamp + - scenarioId + - scenarioOwner + - scenarioOwnerRole + - scenarioTitle + type: object + properties: + scenarioOwnerRole: + type: string + scenarioCreationTimestamp: + type: string + scenarioExpirationTimestamp: + type: string + scenarioOwner: + type: string + scenarioDescription: + type: string + scenarioId: + type: string + scenarioTitle: + type: string + apirequestScenarioFeedbackbpnsbpns_materialFlowScenarioRequest: + required: + - scenarioHeader + - scenarioParameter + - scenarioSimResults + type: object + properties: + scenarioSimResults: + $ref: '#/components/schemas/apirequestScenarioFeedbackbpnsbpns_materialFlowScenarioRequest_scenarioSimResults' + scenarioParameter: + $ref: '#/components/schemas/apirequestScenarioFeedbackbpnsbpns_materialFlowScenarioRequest_scenarioParameter' + scenarioHeader: + $ref: '#/components/schemas/apirequestScenarioFeedbackbpnsbpns_materialFlowScenarioRequest_scenarioHeader' + bpns_bpns_body: + required: + - materialFlowScenarioRequest + type: object + properties: + materialFlowScenarioRequest: + $ref: '#/components/schemas/apirequestScenarioFeedbackbpnsbpns_materialFlowScenarioRequest' diff --git a/openApi/resiliency/osim-api.json b/openApi/resiliency/osim-api.json deleted file mode 100644 index 939007f821f..00000000000 --- a/openApi/resiliency/osim-api.json +++ /dev/null @@ -1,1532 +0,0 @@ -{ - "openapi": "3.0.1", - "info": { - "title": "OSim API", - "description": "OSim API for requesting and receiving simulation results", - "version": "3.0.0" - }, - "servers": [ - { - "url": "https://{server-url}" - } - ], - "tags": [ - { - "name": "requestLatestSimulationResult", - "description": "Request Latest Simulation Result" - }, - { - "name": "receiveLatestSimulationResult", - "description": "Receive Latest Simulation Result" - }, - { - "name": "requestScenarioFeedback", - "description": "Request Scenario Feedback" - }, - { - "name": "receiveScenarioFeedback", - "description": "Receive Scenario Feedback" - }, - { - "name": "pushScenarioState", - "description": "Push Scenario State" - } - ], - "paths": { - "/api/requestLatestSimulationResult/bpns/{bpns}/requestId/{requestId}/simulationRunId/{simulationRunId}": { - "get": { - "operationId": "requestLatestSimulationResult", - "tags": ["requestLatestSimulationResult"], - "description": "Request latest simulation result by referring the latest simulation run id available in own OSim Manager", - "parameters": [ - { - "name": "requestId", - "in": "path", - "required": true, - "style": "simple", - "explode": false, - "schema": { - "type": "string" - }, - "example": "8d628899-3e6f-4666-91c3-74ee7ab88b2b" - }, - { - "name": "bpns", - "in": "path", - "required": true, - "style": "simple", - "explode": false, - "schema": { - "type": "string" - }, - "example": "BPNS00000007OTZ3" - }, - { - "name": "simulationRunId", - "in": "path", - "required": true, - "style": "simple", - "explode": false, - "schema": { - "type": "string" - }, - "example": "50737df3-4237-4652-b092-1ef8649f6ca6" - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "text": { - "schema": { - "type": "string", - "example": "The request has succeeded. The requestLatestSimulationResult has been successfully processed in the backend system." - } - } - } - }, - "400": { - "description": "Bad request", - "content": { - "text": { - "schema": { - "type": "string", - "example": "The server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing)." - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "text": { - "schema": { - "type": "string", - "example": "Although the HTTP standard specifies \"unauthorized\", semantically this response means \"unauthenticated\". That is, the client must authenticate itself to get the requested response." - } - } - } - }, - "402": { - "description": "Unknown BPNS", - "content": { - "text": { - "schema": { - "type": "string", - "example": "The BPNS which is given as parameter is not registered in the data provider database as a direct partner." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "text": { - "schema": { - "type": "string", - "example": "The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource." - } - } - } - }, - "404": { - "description": "No simulation results are released", - "content": { - "text": { - "schema": { - "type": "string", - "example": "Data provider doesn’t have any released simulation results" - } - } - } - }, - "405": { - "description": "Method not allowed", - "content": { - "text": { - "schema": { - "type": "string", - "example": "The method used to request the data was not GET" - } - } - } - }, - "406": { - "description": "No newer simulation available", - "content": { - "text": { - "schema": { - "type": "string", - "example": "The simulationRunId which is given as parameter is identical to the currently released simulation run in the data provider database" - } - } - } - }, - "407": { - "description": "No shipments planned", - "content": { - "text": { - "schema": { - "type": "string", - "example": "No shipments are currently planned for the requestor" - } - } - } - }, - "500": { - "description": "Internal server error", - "content": { - "text": { - "schema": { - "type": "string", - "example": "The server has encountered a situation it does not know how to handle." - } - } - } - }, - "501": { - "description": "Service unavailable", - "content": { - "text": { - "schema": { - "type": "string", - "example": "The server is not ready to handle the request." - } - } - } - } - }, - "servers": [ - { - "url": "https://{server-url}" - } - ] - }, - "servers": [ - { - "url": "https://{server-url}" - } - ] - }, - "/api/receiveLatestSimulationResult/requestId/{requestId}": { - "post": { - "tags": ["receiveLatestSimulationResult"], - "description": "Receive latest simulation result which can be stored in own OSim Manager instance", - "operationId": "receiveLatestSimulationResult", - "parameters": [ - { - "name": "requestId", - "in": "path", - "required": true, - "style": "simple", - "explode": false, - "schema": { - "type": "string" - }, - "example": "8d628899-3e6f-4666-91c3-74ee7ab88b2b" - } - ], - "requestBody": { - "$ref": "#/components/requestBodies/MaterialFlowSimulationResultAspect" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "text": { - "schema": { - "type": "string", - "example": "The POST has succeeded. The receiveLatestSimulationResult has been successfully processed in the backend system." - } - } - } - }, - "400": { - "description": "Bad request", - "content": { - "text": { - "schema": { - "type": "string", - "example": "The server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing)." - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "text": { - "schema": { - "type": "string", - "example": "Although the HTTP standard specifies \"unauthorized\", semantically this response means \"unauthenticated\". That is, the client must authenticate itself to get the requested response." - } - } - } - }, - "402": { - "description": "Payload is empty", - "content": { - "text": { - "schema": { - "type": "string", - "example": "The payload of the API call is empty." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "text": { - "schema": { - "type": "string", - "example": "The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource." - } - } - } - }, - "404": { - "description": "Payload structure unknown", - "content": { - "text": { - "schema": { - "type": "string", - "example": "The payload structure is unknown or correspond not to the defined semantic model" - } - } - } - }, - "405": { - "description": "Method not allowed", - "content": { - "text": { - "schema": { - "type": "string", - "example": "The method used to receive the data was not POST" - } - } - } - }, - "406": { - "description": "Payload content invalid", - "content": { - "text": { - "schema": { - "type": "string", - "example": "The content of the payload is invalid. E.g. “owner unknown”" - } - } - } - }, - "500": { - "description": "Internal server error", - "content": { - "text": { - "schema": { - "type": "string", - "example": "The server has encountered a situation it does not know how to handle." - } - } - } - }, - "501": { - "description": "Service unavailable", - "content": { - "text": { - "schema": { - "type": "string", - "example": "The server is not ready to handle the request." - } - } - } - } - }, - "servers": [ - { - "url": "https://{server-url}" - } - ] - }, - "servers": [ - { - "url": "https://{server-url}" - } - ] - }, - "/api/requestScenarioFeedback/bpns/{bpns}": { - "post": { - "operationId": "requestScenarioFeedback", - "tags": ["requestScenarioFeedback"], - "description": "The requestScenarioFeedback is a request from a OSim partner for feedback on the possible fulfillment of the described scenario.", - "parameters": [ - { - "name": "bpns", - "in": "path", - "required": true, - "style": "simple", - "explode": false, - "schema": { - "type": "string" - }, - "example": "BPNS00000007OTZ3" - } - ], - "requestBody": { - "$ref": "#/components/requestBodies/MaterialFlowScenarioRequestAspect" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "text": { - "schema": { - "type": "string", - "example": "The request has succeeded. The requestScenarioFeedback has been successfully processed in the backend system." - } - } - } - }, - "400": { - "description": "Bad request", - "content": { - "text": { - "schema": { - "type": "string", - "example": "The server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing)." - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "text": { - "schema": { - "type": "string", - "example": "Although the HTTP standard specifies \"unauthorized\", semantically this response means \"unauthenticated\". That is, the client must authenticate itself to get the requested response." - } - } - } - }, - "402": { - "description": "Unknown BPNS", - "content": { - "text": { - "schema": { - "type": "string", - "example": "The BPNS which is given as parameter is not registered in the data provider database as a direct partner." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "text": { - "schema": { - "type": "string", - "example": "The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource." - } - } - } - }, - "405": { - "description": "Method not allowed", - "content": { - "text": { - "schema": { - "type": "string", - "example": "The method used to request a scenario feedback was not POST" - } - } - } - }, - "500": { - "description": "Internal server error", - "content": { - "text": { - "schema": { - "type": "string", - "example": "The server has encountered a situation it does not know how to handle." - } - } - } - }, - "501": { - "description": "Service unavailable", - "content": { - "text": { - "schema": { - "type": "string", - "example": "The server is not ready to handle the request." - } - } - } - } - }, - "servers": [ - { - "url": "https://{server-url}" - } - ] - }, - "servers": [ - { - "url": "https://{server-url}" - } - ] - }, - "/api/receiveScenarioFeedback/bpns/{bpns}/scenarioId/{scenarioId}/feedback/{feedback}": { - "get": { - "operationId": "receiveScenarioFeedback", - "tags": ["receiveScenarioFeedback"], - "description": "The receiveScenarioFeedback enables the requestor to transmit the result of his scenario-based evaluation to the requestor", - "parameters": [ - { - "name": "bpns", - "in": "path", - "required": true, - "style": "simple", - "explode": false, - "schema": { - "type": "string" - }, - "example": "BPNS00000007OTZ3" - }, - { - "name": "scenarioId", - "in": "path", - "required": true, - "style": "simple", - "explode": false, - "schema": { - "type": "string" - }, - "example": "50737df3-4237-4652-b092-1ef8649f6ca6" - }, - { - "name": "feedback", - "in": "path", - "required": true, - "style": "simple", - "explode": false, - "schema": { - "type": "string", - "enum": ["Realizable", "NotRealizable"] - }, - "example": "Realizable" - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "text": { - "schema": { - "type": "string", - "example": "The GET request has succeeded. The receiveScenarioFeedback has been successfully processed in the backend system." - } - } - } - }, - "400": { - "description": "Bad request", - "content": { - "text": { - "schema": { - "type": "string", - "example": "The server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing)." - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "text": { - "schema": { - "type": "string", - "example": "Although the HTTP standard specifies \"unauthorized\", semantically this response means \"unauthenticated\". That is, the client must authenticate itself to get the requested response." - } - } - } - }, - "402": { - "description": "Unknown BPNS", - "content": { - "text": { - "schema": { - "type": "string", - "example": "The BPNS which is given as parameter is not registered in the data provider database as a direct partner." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "text": { - "schema": { - "type": "string", - "example": "The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource." - } - } - } - }, - "405": { - "description": "Method not allowed", - "content": { - "text": { - "schema": { - "type": "string", - "example": "The method used to request a scenario feedback was not GET" - } - } - } - }, - "406": { - "description": "Unknown Scenario", - "content": { - "text": { - "schema": { - "type": "string", - "example": "The scenarioID which is given as parameter is not registered." - } - } - } - }, - "407": { - "description": "Unknown State", - "content": { - "text": { - "schema": { - "type": "string", - "example": "The feedbackState value is unknown." - } - } - } - }, - "500": { - "description": "Internal server error", - "content": { - "text": { - "schema": { - "type": "string", - "example": "The server has encountered a situation it does not know how to handle." - } - } - } - }, - "501": { - "description": "Service unavailable", - "content": { - "text": { - "schema": { - "type": "string", - "example": "The server is not ready to handle the request." - } - } - } - } - }, - "servers": [ - { - "url": "https://{server-url}" - } - ] - }, - "servers": [ - { - "url": "https://{server-url}" - } - ] - }, - "/api/pushScenarioState/bpns/{bpns}/scenarioId/{scenarioId}/state/{state}": { - "post": { - "operationId": "pushScenarioState", - "tags": ["pushScenarioState"], - "description": "The pushScenarioState enables distribution of a new scenario status and thus a notification of the procedure with the planned scenario", - "parameters": [ - { - "name": "bpns", - "in": "path", - "required": true, - "style": "simple", - "explode": false, - "schema": { - "type": "string" - }, - "example": "BPNS00000007OTZ3" - }, - { - "name": "scenarioId", - "in": "path", - "required": true, - "style": "simple", - "explode": false, - "schema": { - "type": "string" - }, - "example": "50737df3-4237-4652-b092-1ef8649f6ca6" - }, - { - "name": "state", - "in": "path", - "required": true, - "style": "simple", - "explode": false, - "schema": { - "type": "string", - "enum": ["InRealization", "Processed", "Canceled"] - }, - "example": "InRealization" - } - ], - "requestBody": { - "content": { - "text/plain": { - "schema": { - "type": "string" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "text": { - "schema": { - "type": "string", - "example": "The GET has succeeded. The pushScenarioState has been successfully processed in the backend system." - } - } - } - }, - "400": { - "description": "Bad request", - "content": { - "text": { - "schema": { - "type": "string", - "example": "The server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing)." - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "text": { - "schema": { - "type": "string", - "example": "Although the HTTP standard specifies \"unauthorized\", semantically this response means \"unauthenticated\". That is, the client must authenticate itself to get the requested response." - } - } - } - }, - "402": { - "description": "Unknown BPNS", - "content": { - "text": { - "schema": { - "type": "string", - "example": "The BPNS which is given as parameter is not registered in the data provider database as a direct partner." - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "text": { - "schema": { - "type": "string", - "example": "The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource." - } - } - } - }, - "405": { - "description": "Method not allowed", - "content": { - "text": { - "schema": { - "type": "string", - "example": "The method used to request a scenario feedback was not GET" - } - } - } - }, - "406": { - "description": "Unknown Scenario", - "content": { - "text": { - "schema": { - "type": "string", - "example": "The scenarioID which is given as parameter is not registered." - } - } - } - }, - "407": { - "description": "Unknown State", - "content": { - "text": { - "schema": { - "type": "string", - "example": "The scenarioState value is unknown." - } - } - } - }, - "500": { - "description": "Internal server error", - "content": { - "text": { - "schema": { - "type": "string", - "example": "The server has encountered a situation it does not know how to handle." - } - } - } - }, - "501": { - "description": "Service unavailable", - "content": { - "text": { - "schema": { - "type": "string", - "example": "The server is not ready to handle the request." - } - } - } - } - }, - "servers": [ - { - "url": "https://{server-url}" - } - ] - }, - "servers": [ - { - "url": "https://{server-url}" - } - ] - } - }, - "components": { - "schemas": { - "Text": { - "type": "string", - "description": "Describes a Property which contains plain text. This is intended exclusively for human readable strings, not for identifiers, measurement values, etc.", - "x-samm-aspect-model-urn": "urn:samm:org.eclipse.esmf.samm:characteristic:2.1.0#Text" - }, - "Timestamp": { - "pattern": "-?([1-9][0-9]{3,}|0[0-9]{3})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T(([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\\.[0-9]+)?|(24:00:00(\\.0+)?))(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?", - "type": "string", - "description": "Describes a Property which contains the date and time with an optional timezone.", - "x-samm-aspect-model-urn": "urn:samm:org.eclipse.esmf.samm:characteristic:2.1.0#Timestamp" - }, - "BpnsTrait": { - "pattern": "^BPNS[a-zA-Z0-9]{12}$", - "type": "string", - "description": "The provided regular expression ensures that the BPNS is composed of prefix 'BPNS', 10 digits and two alphanumeric letters.", - "x-samm-aspect-model-urn": "urn:samm:io.catenax.shared.business_partner_number:2.0.0#BpnsTrait" - }, - "ScenarioOwnerCharacteristic": { - "required": ["bpnsProperty"], - "type": "object", - "properties": { - "bpnsProperty": { - "$ref": "#/components/schemas/BpnsTrait" - } - }, - "description": "Characteristic describing the Scenario Owner", - "x-samm-aspect-model-urn": "urn:samm:io.catenax.material_flow_scenario_request:2.0.0#ScenarioOwnerCharacteristic" - }, - "ScenarioOwnerRoleCharacteristic": { - "type": "string", - "description": "Characteristic describing possible values for the role of the scenario owner", - "enum": [ - "Customer", - "Supplier", - "LogisticianReceiving", - "LogisticianSending" - ], - "x-samm-aspect-model-urn": "urn:samm:io.catenax.material_flow_scenario_request:2.0.0#ScenarioOwnerRoleCharacteristic" - }, - "ScenarioHeaderCharacteristic": { - "required": [ - "scenarioCreationTimestamp", - "scenarioExpirationTimestamp", - "scenarioId", - "scenarioOwner", - "scenarioOwnerRole", - "scenarioTitle" - ], - "type": "object", - "properties": { - "scenarioId": { - "$ref": "#/components/schemas/Text" - }, - "scenarioTitle": { - "$ref": "#/components/schemas/Text" - }, - "scenarioCreationTimestamp": { - "$ref": "#/components/schemas/Timestamp" - }, - "scenarioExpirationTimestamp": { - "$ref": "#/components/schemas/Timestamp" - }, - "scenarioOwner": { - "$ref": "#/components/schemas/ScenarioOwnerCharacteristic" - }, - "scenarioOwnerRole": { - "$ref": "#/components/schemas/ScenarioOwnerRoleCharacteristic" - }, - "scenarioDescription": { - "$ref": "#/components/schemas/Text" - } - }, - "description": "Characteristic describing the parameter for a scenario header", - "x-samm-aspect-model-urn": "urn:samm:io.catenax.material_flow_scenario_request:2.0.0#ScenarioHeaderCharacteristic" - }, - "QuantityCharacteristic": { - "type": "number", - "description": "Describes a property which is a Float", - "x-samm-aspect-model-urn": "urn:samm:io.catenax.material_flow_scenario_request:2.0.0#QuantityCharacteristic" - }, - "Text0": { - "type": "string", - "description": "Describes a Property which contains plain text. This is intended exclusively for human readable strings, not for identifiers, measurement values, etc.", - "x-samm-aspect-model-urn": "urn:samm:io.catenax.material_flow_simulation_result:3.0.0#Text" - }, - "UnitOfMeasurementCharacteristic": { - "type": "string", - "description": "Possible options for units of measurement", - "enum": ["KG", "Liter", "Piece"], - "x-samm-aspect-model-urn": "urn:samm:io.catenax.material_flow_simulation_result:3.0.0#UnitOfMeasurementCharacteristic" - }, - "ScenarioParameter": { - "required": [ - "materialName", - "materialNumber", - "parameterComment", - "parameterDeliveryDateInitial", - "parameterDeliveryDateUpdated", - "parameterId", - "parameterOrderId", - "parameterQuantityInitial", - "parameterQuantityUpdated", - "unitOfMeasurement" - ], - "type": "object", - "properties": { - "parameterId": { - "$ref": "#/components/schemas/Text" - }, - "parameterDeliveryDateInitial": { - "$ref": "#/components/schemas/Timestamp" - }, - "parameterDeliveryDateUpdated": { - "$ref": "#/components/schemas/Timestamp" - }, - "parameterQuantityInitial": { - "$ref": "#/components/schemas/QuantityCharacteristic" - }, - "parameterQuantityUpdated": { - "$ref": "#/components/schemas/QuantityCharacteristic" - }, - "parameterOrderId": { - "$ref": "#/components/schemas/Text" - }, - "parameterComment": { - "$ref": "#/components/schemas/Text" - }, - "materialNumber": { - "$ref": "#/components/schemas/Text0" - }, - "materialName": { - "$ref": "#/components/schemas/Text0" - }, - "unitOfMeasurement": { - "$ref": "#/components/schemas/UnitOfMeasurementCharacteristic" - } - }, - "description": "Parameters which are used to describe a material flow scenario request", - "x-samm-aspect-model-urn": "urn:samm:io.catenax.material_flow_scenario_request:2.0.0#ScenarioParameter" - }, - "ScenarioParameterCharacteristic": { - "type": "array", - "description": "Characteristic describing the scenario parameter", - "items": { - "$ref": "#/components/schemas/ScenarioParameter" - }, - "x-samm-aspect-model-urn": "urn:samm:io.catenax.material_flow_scenario_request:2.0.0#ScenarioParameterCharacteristic" - }, - "BusinessPartnerSite": { - "required": ["bpnsProperty"], - "type": "object", - "properties": { - "bpnsProperty": { - "$ref": "#/components/schemas/BpnsTrait" - } - }, - "description": "Characteristic describing the Scenario Owner", - "x-samm-aspect-model-urn": "urn:samm:io.catenax.material_flow_scenario_request:2.0.0#ScenarioOwnerCharacteristic" - }, - "OwnerCharacteristic": { - "type": "object", - "description": "Site identifier of the simulation originator", - "allOf": [ - { - "$ref": "#/components/schemas/BusinessPartnerSite" - } - ], - "x-samm-aspect-model-urn": "urn:samm:io.catenax.material_flow_simulation_result:3.0.0#OwnerCharacteristic" - }, - "DataQualityOptions": { - "minimum": 0, - "type": "number", - "description": "Possible values determining data quality", - "enum": [0, 1, 2, 3, 4, 5], - "x-samm-aspect-model-urn": "urn:samm:io.catenax.material_flow_simulation_result:3.0.0#DataQualityOptions" - }, - "DestinationCharacteristic": { - "type": "object", - "description": "Address where the shipment is immediately delivered to (by logistician) or provided for pickup (by producer)", - "allOf": [ - { - "$ref": "#/components/schemas/BusinessPartnerSite" - } - ], - "x-samm-aspect-model-urn": "urn:samm:io.catenax.material_flow_simulation_result:3.0.0#DestinationCharacteristic" - }, - "RecipientCharacteristic": { - "type": "object", - "description": "Location identifier of the final recipient of the shipment", - "allOf": [ - { - "$ref": "#/components/schemas/BusinessPartnerSite" - } - ], - "x-samm-aspect-model-urn": "urn:samm:io.catenax.material_flow_simulation_result:3.0.0#RecipientCharacteristic" - }, - "Boolean": { - "type": "boolean", - "description": "Represents a boolean value (i.e. a \"flag\").", - "x-samm-aspect-model-urn": "urn:samm:org.eclipse.esmf.samm:characteristic:2.1.0#Boolean" - }, - "LogisticsCharacteristic": { - "type": "object", - "description": "Site identifier of the logistician executing the shipment", - "allOf": [ - { - "$ref": "#/components/schemas/BusinessPartnerSite" - } - ], - "x-samm-aspect-model-urn": "urn:samm:io.catenax.material_flow_simulation_result:3.0.0#LogisticsCharacteristic" - }, - "PrecedingCharacteristic": { - "type": "object", - "description": "Reference of preceding shipments", - "allOf": [ - { - "$ref": "#/components/schemas/BusinessPartnerSite" - } - ], - "x-samm-aspect-model-urn": "urn:samm:io.catenax.material_flow_simulation_result:3.0.0#PrecedingCharacteristic" - }, - "VolumeCharacteristic": { - "type": "number", - "description": "Volumetric value determining the volume of the handling unit", - "x-samm-aspect-model-urn": "urn:samm:io.catenax.material_flow_simulation_result:3.0.0#VolumeCharacteristic" - }, - "WeightCharacteristic": { - "type": "number", - "description": "Amount of weight of the handling unit", - "x-samm-aspect-model-urn": "urn:samm:io.catenax.material_flow_simulation_result:3.0.0#WeightCharacteristic" - }, - "AmountCharacteristic": { - "minimum": 1, - "type": "number", - "description": "Number describing handling units with identical pieces", - "x-samm-aspect-model-urn": "urn:samm:io.catenax.material_flow_simulation_result:3.0.0#AmountCharacteristic" - }, - "QuantityCharacteristic0": { - "type": "number", - "description": "Number of materials contained within a handling unit", - "x-samm-aspect-model-urn": "urn:samm:io.catenax.material_flow_simulation_result:3.0.0#QuantityCharacteristic" - }, - "MaterialBatch": { - "required": [ - "batchExpirationTimestamp", - "batchNumber", - "batchOrderId", - "batchSerialNumber", - "materialHazardousGoods", - "materialName", - "materialNumber", - "quantity", - "unitOfMeasurement" - ], - "type": "object", - "properties": { - "batchSerialNumber": { - "$ref": "#/components/schemas/Text0" - }, - "materialNumber": { - "$ref": "#/components/schemas/Text0" - }, - "materialName": { - "$ref": "#/components/schemas/Text0" - }, - "materialHazardousGoods": { - "$ref": "#/components/schemas/Boolean" - }, - "batchExpirationTimestamp": { - "$ref": "#/components/schemas/Timestamp" - }, - "quantity": { - "$ref": "#/components/schemas/QuantityCharacteristic0" - }, - "unitOfMeasurement": { - "$ref": "#/components/schemas/UnitOfMeasurementCharacteristic" - }, - "batchNumber": { - "$ref": "#/components/schemas/Text0" - }, - "batchOrderId": { - "$ref": "#/components/schemas/Text0" - } - }, - "description": "Material Batches are part of a handling unit", - "x-samm-aspect-model-urn": "urn:samm:io.catenax.material_flow_simulation_result:3.0.0#MaterialBatch" - }, - "BatchList": { - "type": "array", - "description": "List of material batches", - "items": { - "$ref": "#/components/schemas/MaterialBatch" - }, - "x-samm-aspect-model-urn": "urn:samm:io.catenax.material_flow_simulation_result:3.0.0#BatchList" - }, - "HandlingUnit": { - "required": [ - "amount", - "batches", - "handlingUnitId", - "name", - "volume", - "weight" - ], - "type": "object", - "properties": { - "handlingUnitId": { - "$ref": "#/components/schemas/Text0" - }, - "name": { - "$ref": "#/components/schemas/Text0" - }, - "volume": { - "$ref": "#/components/schemas/VolumeCharacteristic" - }, - "weight": { - "$ref": "#/components/schemas/WeightCharacteristic" - }, - "amount": { - "$ref": "#/components/schemas/AmountCharacteristic" - }, - "batches": { - "$ref": "#/components/schemas/BatchList" - } - }, - "description": "Handling Unit is the smallest shipment unit and cannot be divided into several shipments", - "x-samm-aspect-model-urn": "urn:samm:io.catenax.material_flow_simulation_result:3.0.0#HandlingUnit" - }, - "HandlingUnitList": { - "type": "array", - "description": "List of handling units included in the shipment", - "items": { - "$ref": "#/components/schemas/HandlingUnit" - }, - "x-samm-aspect-model-urn": "urn:samm:io.catenax.material_flow_simulation_result:3.0.0#HandlingUnitList" - }, - "Shipment": { - "required": [ - "destination", - "destinationTimestamp", - "handlingUnits", - "logistics", - "preceding", - "recipient", - "recipientTimestampPlanned", - "shipmentId", - "splittingAllowed" - ], - "type": "object", - "properties": { - "shipmentId": { - "$ref": "#/components/schemas/Text" - }, - "destination": { - "$ref": "#/components/schemas/DestinationCharacteristic" - }, - "destinationTimestamp": { - "$ref": "#/components/schemas/Timestamp" - }, - "recipient": { - "$ref": "#/components/schemas/RecipientCharacteristic" - }, - "recipientTimestampPlanned": { - "$ref": "#/components/schemas/Timestamp" - }, - "splittingAllowed": { - "$ref": "#/components/schemas/Boolean" - }, - "logistics": { - "$ref": "#/components/schemas/LogisticsCharacteristic" - }, - "preceding": { - "$ref": "#/components/schemas/PrecedingCharacteristic" - }, - "handlingUnits": { - "$ref": "#/components/schemas/HandlingUnitList" - } - }, - "description": "Delivery item from a sender to a recipient containing goods", - "x-samm-aspect-model-urn": "urn:samm:io.catenax.material_flow_simulation_result:3.0.0#Shipment" - }, - "ShipmentList": { - "type": "array", - "description": "List of shipments contained in the simulation", - "items": { - "$ref": "#/components/schemas/Shipment" - }, - "x-samm-aspect-model-urn": "urn:samm:io.catenax.material_flow_simulation_result:3.0.0#ShipmentList" - }, - "SimResult": { - "required": [ - "comment", - "dataQuality", - "description", - "expirationTimestamp", - "owner", - "runId", - "shipments", - "timestamp" - ], - "type": "object", - "properties": { - "description": { - "$ref": "#/components/schemas/Text0" - }, - "runId": { - "$ref": "#/components/schemas/Text0" - }, - "comment": { - "$ref": "#/components/schemas/Text0" - }, - "expirationTimestamp": { - "$ref": "#/components/schemas/Timestamp" - }, - "owner": { - "$ref": "#/components/schemas/OwnerCharacteristic" - }, - "dataQuality": { - "$ref": "#/components/schemas/DataQualityOptions" - }, - "shipments": { - "$ref": "#/components/schemas/ShipmentList" - }, - "timestamp": { - "$ref": "#/components/schemas/Timestamp" - } - }, - "description": "Characteristic describing the property for a Material Flow Simulation Result", - "example": { - "materialFlowSimulationResult": { - "owner": { - "bpnsProperty": "BPNS0123456789ZZ" - }, - "dataQuality": 0, - "description": "Please simulate asap", - "comment": "successful simulation ", - "expirationTimestamp": "2023-03-24T09:15:24.000Z", - "runId": "0fece48b-c8d1-4180-1a9caca6d67e", - "shipments": [ - { - "handlingUnits": [ - { - "name": "Palette", - "volume": 1, - "weight": 189, - "batches": [ - { - "unitOfMeasurement": "KG", - "materialName": "KK1000GR-Gehäuse-Rot", - "quantity": 50, - "materialNumber": "KK1000GR", - "materialHazardousGoods": false, - "batchSerialNumber": "Batch_1", - "batchOrderId": "Order-0001", - "batchExpirationTimestamp": "2023-08-22T16:00:00.000Z", - "batchNumber": "45" - } - ], - "handlingUnitId": "HUT_1", - "amount": 1 - } - ], - "shipmentId": "DE51515151", - "recipientTimestampPlanned": "2023-04-19T09:00:00.000Z", - "destination": { - "bpnsProperty": "BPNS0123456789ZZ" - }, - "recipient": { - "bpnsProperty": "BPNS0123456789ZZ" - }, - "logistics": { - "bpnsProperty": "BPNS0123456789ZZ" - }, - "preceding": { - "bpnsProperty": "BPNS0123456789ZZ" - }, - "splittingAllowed": true, - "destinationTimestamp": "2023-03-19T09:00:00.000Z" - } - ], - "timestamp": "2023-03-09T14:13:42.806Z" - } - }, - "x-samm-aspect-model-urn": "urn:samm:io.catenax.material_flow_scenario_request:2.0.0#SimResult" - }, - "ScenarioSimResultsCharacteristic": { - "required": ["resultOwnId"], - "type": "object", - "properties": { - "resultOwnId": { - "$ref": "#/components/schemas/Text" - }, - "resultOwnSimRunInitial": { - "$ref": "#/components/schemas/SimResult" - }, - "resultOwnSimRunUpdated": { - "$ref": "#/components/schemas/SimResult" - } - }, - "description": "Characteristic for simulation results", - "x-samm-aspect-model-urn": "urn:samm:io.catenax.material_flow_scenario_request:2.0.0#ScenarioSimResultsCharacteristic" - }, - "MaterialFlowScenarioRequestCharacteristic": { - "required": ["scenarioHeader", "scenarioSimResults"], - "type": "object", - "properties": { - "scenarioHeader": { - "$ref": "#/components/schemas/ScenarioHeaderCharacteristic" - }, - "scenarioParameter": { - "$ref": "#/components/schemas/ScenarioParameterCharacteristic" - }, - "scenarioSimResults": { - "$ref": "#/components/schemas/ScenarioSimResultsCharacteristic" - } - }, - "description": "Characteristic describing the aspect Material Flow Scenario Request", - "example": { - "materialFlowScenarioRequest": { - "scenarioSimResults": { - "resultOwnId": "916b5688-8bd8-4d7e-83b9-e0d40939274e", - "resultOwnSimRunInitial": { - "owner": { - "bpnsProperty": "BPNS0123456789ZZ" - }, - "dataQuality": 0, - "description": "Please simulate asap", - "comment": "successful simulation ", - "expirationTimestamp": "2023-03-24T09:15:24.000Z", - "runId": "0fece48b-c8d1-4180-1a9caca6d67e", - "shipments": [ - { - "handlingUnits": [ - { - "name": "Palette", - "volume": 1, - "weight": 189, - "batches": [ - { - "unitOfMeasurement": "KG", - "materialName": "KK1000GR-Gehäuse-Rot", - "quantity": 50, - "materialNumber": "KK1000GR", - "materialHazardousGoods": false, - "batchSerialNumber": "Batch_1", - "batchOrderId": "Order-0001", - "batchExpirationTimestamp": "2023-08-22T16:00:00.000Z", - "batchNumber": "45" - } - ], - "handlingUnitId": "HUT_1", - "amount": 1 - } - ], - "shipmentId": "DE51515151", - "recipientTimestampPlanned": "2023-04-19T09:00:00.000Z", - "destination": { - "bpnsProperty": "BPNS0123456789ZZ" - }, - "recipient": { - "bpnsProperty": "BPNS0123456789ZZ" - }, - "logistics": { - "bpnsProperty": "BPNS0123456789ZZ" - }, - "preceding": { - "bpnsProperty": "BPNS0123456789ZZ" - }, - "splittingAllowed": true, - "destinationTimestamp": "2023-03-19T09:00:00.000Z" - } - ], - "timestamp": "2023-03-09T14:13:42.806Z" - }, - "resultOwnSimRunUpdated": { - "owner": { - "bpnsProperty": "BPNS0123456789ZZ" - }, - "dataQuality": 0, - "description": "Please simulate asap", - "comment": "successful simulation ", - "expirationTimestamp": "2023-03-24T09:15:24.000Z", - "runId": "0fece48b-c8d1-4180-1a9caca6d67e", - "shipments": [ - { - "handlingUnits": [ - { - "name": "Palette", - "volume": 1, - "weight": 189, - "batches": [ - { - "unitOfMeasurement": "KG", - "materialName": "KK1000GR-Gehäuse-Rot", - "quantity": 50, - "materialNumber": "KK1000GR", - "materialHazardousGoods": false, - "batchSerialNumber": "Batch_1", - "batchOrderId": "Order-0001", - "batchExpirationTimestamp": "2023-08-22T16:00:00.000Z", - "batchNumber": "45" - } - ], - "handlingUnitId": "HUT_1", - "amount": 1 - } - ], - "shipmentId": "DE51515151", - "recipientTimestampPlanned": "2023-04-19T09:00:00.000Z", - "destination": { - "bpnsProperty": "BPNS0123456789ZZ" - }, - "recipient": { - "bpnsProperty": "BPNS0123456789ZZ" - }, - "logistics": { - "bpnsProperty": "BPNS0123456789ZZ" - }, - "preceding": { - "bpnsProperty": "BPNS0123456789ZZ" - }, - "splittingAllowed": true, - "destinationTimestamp": "2023-03-19T09:00:00.000Z" - } - ], - "timestamp": "2023-03-09T14:13:42.806Z" - } - }, - "scenarioParameter": [ - { - "unitOfMeasurement": "KG", - "parameterComment": "updated Delivery Date", - "materialName": "KK1000GR-Gehäuse-Rot", - "parameterQuantityUpdated": 1, - "parameterId": "847c71e5-614a-468b-a3a0-674bf2af3004", - "materialNumber": "KK1000GR", - "parameterDeliveryDateUpdated": "2023-10-10T09:00:00.000Z", - "parameterDeliveryDateInitial": "2023-10-09T10:00:00.000Z", - "parameterOrderId": "OID-011123546", - "parameterQuantityInitial": 1 - } - ], - "scenarioHeader": { - "scenarioOwnerRole": "Customer", - "scenarioCreationTimestamp": "2023-10-04T09:10:00.000Z", - "scenarioExpirationTimestamp": "2023-10-07T09:10:00.000Z", - "scenarioOwner": { - "bpnsProperty": "BPNS0123456789ZZ" - }, - "scenarioDescription": "Changes in Delivery Date", - "scenarioId": "8d464b8b-6977-4952-8a22-0489067ca081", - "scenarioTitle": "Delivery Modification" - } - } - }, - "x-samm-aspect-model-urn": "urn:samm:io.catenax.material_flow_scenario_request:2.0.0#MaterialFlowScenarioRequestCharacteristic" - }, - "MaterialFlowScenarioRequestAspect": { - "required": ["materialFlowScenarioRequest"], - "type": "object", - "properties": { - "materialFlowScenarioRequest": { - "$ref": "#/components/schemas/MaterialFlowScenarioRequestCharacteristic" - } - }, - "description": "Aspect model describing the Material Flow Scenario Request", - "x-samm-aspect-model-urn": "urn:samm:io.catenax.material_flow_scenario_request:2.0.0#MaterialFlowScenarioRequestAspect" - } - }, - "responses": { - "Unauthorized": { - "description": "The requesting user or client is not authenticated." - }, - "Forbidden": { - "description": "The requesting user or client is not authorized to access resources for the given tenant." - }, - "NotFoundError": { - "description": "The requested Twin has not been found." - }, - "MaterialFlowScenarioRequestAspect": { - "description": "The request was successful.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MaterialFlowScenarioRequestAspect" - } - } - } - } - }, - "requestBodies": { - "MaterialFlowScenarioRequestAspect": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MaterialFlowScenarioRequestAspect" - } - } - } - }, - "MaterialFlowSimulationResultAspect": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SimResult" - } - } - } - } - } - } -}